AKA: .NET Sucks
I just had to reinstall a Windows XP virtual machine. To make all my programs run I had to manually hunt down and install four versions of the .NET runtime (1.1, 2.0, 3.0 and 3.5. Soon it will be five with 4.0) and the Visual C++ redistributable. Then Windows Update found several updates/SPs to all of them. In all this took at least eight reboots (lost count), though I might have been able to skip some if I felt daring.
Had I only had a plain old original WinXP CD instead of the SP3 one, I'd also had to install each Service Pack one at a time and reboot a lot more.
Cf. Ubuntu, where the installer downloads updates while you are installing (if you are connected) and even afterwards a single run of the update manager or a couple of apt-get invocations are all that's needed. At most a single reboot is required and only if there's a kernel update.