Q:

If I know .NET 4.0 is installed on a user's machine, can I assume .NET 2.0 is as well?

Pretty self-explanatory question, but here's a bit of context:
My app (C++, unmanaged) has a feature written as a C# app. This feature is only available when we know .NET is installed. So, must I maintain separate versions of this C# application for each framework version we want to support, or will a lowest-common-denominator of .NET 2.0 work (thus, if we detect any framework installed >= 2.0, we know we will be OK)?
Note that I prefer to just maintain a single .NET 2.0 version of our C# app.

A:

You can assume that .net 2.0 apps will run on the 4.0 runtime.
See: http://msdn.microsoft.com/en-us/library/ff602939.aspx

A:

Yes, if you write and build your application against .Net 2.0, it will work with all versions going forward.

A:

The .NET framework dependencies page for .NET 4 on MSDN says that yes, you can count on it:

You do not have to install previous versions of the .NET Framework or
  the CLR before you install the latest version; each version provides
  the necessary components.

