The reason why Windows XP is different that Windows Vista/7 and 8 is because, XP uses an older version of the kernel, which is the Windows is based on. The reason why software which worked with Vista, work with 7 and 8 is because all 3 use the same kernel. Making them about the same. Drivers of Vista should and can work with 7 and 8 hence the fact they use the same kernel, If you use XP drivers on these operating systems, they will crash or cause a blue screen error.
The reason why some older software has problems running on newer versions of Windows is because the program was never made to run on the newer OS's kernel.
Let me put it this way...You can't put a stone age cave man in 2012, because he doesn't know what is going on. Yes, he is still human, and there is a possibility that he might survive, but it's just not right, it's wrong, because he has his own time.
You shouldn't run old software on your PC anyway. Not just because of new software being more stable and just plainly better, but because of security reasons. Let's take Windows as an example. Microsoft provides their users with security updates. These updates cover up things we call security holes, where hackers or viruses use to get inside your PC. That's why updating your software and operating system is important. If you don't update, you will be more vulnerable to viruses and spyware and other things.
But if you are just forced to run old software on a new machine, you can do the following:
Right click on the icon of your program you want to run and select Properties.
Then click the Compatibility tab then check the box "Run this program in compatibility for:" and select the version of Windows from the dropdown. Now it will always run the program in Compatibility Mode for the version of Windows you selected.
Hope I helped :)