If you've been programming in .NET for a while, you most likely have one or both of .NET Framework 1.0 and 1.1 installed. Visual Studio 2005 was released with .NET 2.0. .NET 3.0 was released along with Vista. .NET 3.5 is supposedly coming late this year with Orcas. If you're really lucky you may have one or two beta releases (hey, don't those get uninstalled?) of some of those as well. And don't forget those wonderful service packs.
How do you tell what versions of the runtime are installed to verify that the correct version is available for your application?
Scott Dorman has written some nice managed code to do just that. It takes a peek at the registry and figures out what's there.