Holy cow, I wrote a book!
We learned a while ago that
Windows is not an MFC delivery channel.
And, since you asked,
it's not a .NET Framework delivery channel either.
If you're developing a program that uses the .NET Framework,
you have to have a backup plan if the version of the .NET Framework
you need is not installed on the computer.
This might mean including a copy of the installer on your CD.
It might mean redirecting the user to an appropriate download site.
It might just mean telling the user,
"This program requires version XYZ of the .NET Framework."
Whatever you do, you need to do something.
Windows XP didn't come with any version of the .NET Framework.
Windows Vista came with version 2, and
Windows 7 came with version 3.5,
but these were provided as optional components which were
installed by default.
You can go into the Programs and Features control panel
to remove them.
As I recall,
the application compatibility folks have a list of programs that
treated Windows as a .NET Framework delivery channel;
if you install any of them, and the version of the .NET Framework
they depend on isn't installed,
the application compatibility layer
will display the informational message that the application neglected to.
These programs which treated Windows as a .NET Framework delivery
channel may have been misled by charts
like this one
like this one
which give the impression that Windows is a .NET Framework delivery channel.