Hmm... this I think is a registry fault, and even though it is installed on the system, the registry is somehow not linking to it, so when the programs are trying to install, it cant be found.
Are you by any chance using any registry protectors? For instance, with Spybot, Search & Destroy (spyware detector), it comes with TeaTimer which protects your registry from any harmful changes like when you install a program that needs to change the registry, or when you install a plugin from the internet, etc, and comes up with a popup, telling you do you want the changes to be made.
Maybe you have something like that, and it isn't warning you, because it is more likely with a programming application like the .NET framework, a registry protector will definetly go, "hey... something could be wrong here", and stopping it from actually changing something to make those programs see it.
So I would advise to check for any, and try un-installing the .Net Framework, and then installing it again.
I hope this helps