.Net apps usually target a particular version of the framework. While .Net V3.5.1 contained versions 3.x, 2.x and 1.1, .Net4.0 does not include previous versions (MS decided that at 300MB, the download would be too big!). As such, if you need 3.5.1 (and earlier) and also 4.0, you have to install 2 completely separate packages.
Also, for .Net 4.0 apps, it should also be noted that 4.0 comes in two flavours, 'client' and 'extended'. Client often provides all thats required, but its missing ASP.Net so the stuff to connect to a database is not present in 4.0 Client Profile. I've seen some poorly executed .Net4.0 pre-requisite checking that only checks the registy for the V4.0 key, not whether both the client and extended profiles are present.