I thought usually it only installed the various .NET Frameworks when an application required it, not automatically.
But I agree, they are a nightmare, and when I had XP, Windows Update kept trying to install the same patches for .NET 2.0, even though they were already installed, and it wouldn't let me uninstall .NET to reinstall it either. When I switched to Windows 7, though, it didn't install any of them automatically, but two of my older programs needed .NET 1.1, and one needed .NET 4, so both of them are now installed, and seem to be running and updating OK, but I haven't got 2.0, 3.0, or 3.5.