Ok, so this is not strictly a post about SQL itself (and it's about a fairly old OS), but I did run into this problem myself a couple of weeks ago whilst creating a very specific build to test some functionality and seeing as it took me a little bit of googling, I wanted to jot the fix down as it really was as simple as ticking a box!
I had to build a new virtual machine running Windows 2003, install .net framework 2 through 4 and also a basic installation of SQL 2008. So I created a new machine within my Hyper-V server, attached a Windows 2003 ISO and deployed the OS. So far so good. I then deployed SP2 + the latest Windows Installer so that I could install the Hyper-V extensions and still everything seemed ok. I joined the domain and checked that I could access the web and that was good too. Next I tried to activate windows, but that just seemed to get stuck or hang during the online activation phase of it. For now I shrugged it off and made a note to come back to it later.
So moving on, .net framework 2 went on without any bother, as expected, but then the .net framework 3.0 setup just stopped/hung during the setup phase. That was getting a little bit weird I thought. But, ok, let's try the usual stuff like a reboot, new downloads of .net framework etc, but still the same issue. I couldn't quite work it out as the server seemed fine, it could access the network and internet sites great. The same thing happened with the setup of .net 3.5 as well and in both cases I was using the full redistributable versions of .net and not the web download versions of the setup. Coupled with the fact that I couldn't activate windows I thought that something could have been wrong with the build so not wanting to waste time, I gave up the VM and started from scratch again.
New VM was created, went through the same steps, but hit the same issue again at exactly the same point.. Namely .net framework 3.0/3.5 setup hanging and unable to activate windows online.. ARGGHH!.
It was at this point I stopped and must have spent a good hour or two trawling through the web trying to piece together the various facts that I had with those online and eventually I stumbled across a post that caught my eye. The solution to that particular problem was to enable the advanced internet option "Use HTTP 1.1 through proxy connections". Can't be that simple I thought as I could surf the web fine, but I tried it and would you believe it, Windows activated immediately and my .net framework setups progressed past where they hung before and eventually finished ok. I went on to complete the build without any further issues and onto the tests that I had originally planned for the server.
I'm not entirely sure of the whys or how's with this as I've installed Windows server 2003 loads of times in the past both as virtual machines or dedicated and never come across this before. The only difference is that this is the first time that I have installed it under Hyper-V. Or maybe our network guys have been changing settings recently which have caused this new change in behaviour. ISA, Group Policy? Who knows.. one thing for sure is that I was pretty relieved when I found that post with the fix documented but still perplexed at how after all these years of installing Windows server 2003, this was a new one on me.
(Apologies, but I have since lost the url to the forum post where I found the answer so can't credit directly)