Unfortunately, while this is a long overdue solution that other companies have used fine before, but it's going to prove problematic for Microsoft. Things that won't work (and Joe User will try to do anyway):
1.) Install their XP-compatible Antivirus program. "It said on the Windows 7 box that I could run old programs!"
2.) Install a printer which works on XP only. "The printer box said it works on Windows. Why can I only print from some programs (the older ones seem to work)?"
3.) Play an old game at reasonable speed. "I installed Super Hardware Killer Shooter for Windows XP and the 3D is running really slow!"
Virtualization is a great thing. I use it work all the time and love it. The public doesn't quite "get it" yet. They're going to see some things work, some things not and wonder why the hell that is. It happened when Apple moved to OS X, but the user base was much smaller so the complaints were less.
Until someone creates a hypervisor which is presented in a completely transparent way to the OS, in that things difficult to virtualize (e.g. video card hardware) run at normal speeds, it's just going to appear to the user "every time I run an old program, either it's too slow or it doesn't work".