I have noticed this a few times when installing a Windows XP virtual machine.
On a clean copy of Windows XP Microsoft Update installs the service packs for .NET, for example .NET 2.0 SP2 is installed. However this seems to only partially install .NET and has caused problems for me with IIS/ASP.NET in the past.
There is an error when you try to install .NET manually so to resolve the problem I had to go to Add/Remove programs, uninstall the .NET service packs, install the real .NET framework, then reinstall the service packs.
Why are the service packs seemingly installed before .NET is even on the machine?
I have the feeling it may relate to how the framework handles the side-by-side versions that are installed. I hope it is something that I am misunderstanding about .NET rather than the service pack installer not checking for dependencies by mistake.