In the DOS era applications had a huge degree of independence from the OS. You could nuke the OS, upgrade it, modify it and move machines and your apps worked just the same.
Today things are different. The OS, by means of such "features" as te registry, holds applications hostage.
Say I have a five year old machine. I want to purchase (or more than likely, build) a new machine. In the past this was relativley painless. Once the machine is up you move your apps and off you go. Today this requires full re-installation of apps from scratch. It's a nightmare and it is one I contend has significant economic consequences. Whereas someone like me might consider upgrading hardware every year or two, the financial math now includes the non trivial time and expense of reinstalling everything.
We've done this a few times. With typical high end engineering workstations full of software it can easily take a month of installing and configuring software to get back to the setup you had before he upgrade. This isn't pallatable at all from more than one perspective. And so machines continue to be used as long as possible before upgrading anything that might trigger a reinstallation event.
To me this is a major flaw in the design of Windows. OS, applications and data ought to be fully separable independent entities. I get all the advantages of DLL reuse and centralized settings, etc. I still contend that this could be achieved at the cost of additional storage and some more smarts. A one terabyte hard drive is about $60 today. I could not care less if DLL's need to be duplicated for each software installation in order to break lose from the OS and registry as much as possible.
The point is, if they are smart they ought to be able to figure it out. I ought to be able to install all my apps on a portable USB drive, walk up to any machine in the world, plug in and have my tools and files available for use instantly. That's the way it should work.