DOS: install program by copying a bunch of files to a directory. Start program, won't work as it needs something in config.sys. Add that something, reboot PC, try again and the program now complains about not having enough low memory. Fiddle with expanded/extended/extruded/exploded memory to get those extra 15 KB which the program needs. Reboot PC, the program now works but that other program which used to work doesn't anymore as the special something in config.sys conflicts with its own very special something.
Modern OS: install portable application, problem solved.
Technically it is totally possible to make portable Windows applications and people do it all the time, but it isn't the way applications are typically built and that causes a bunch of problems. Linux has the same issue, really. Linux users will talk about how silly the registry is, but the file hierarchy full of hardcoded paths is pretty much the same damn thing. It is also technically possible to make portable Linux applications, it's just slightly harder than Windows due to a few factors caused by everyone always working within the distro+package manager paradigm. Where they do have some form of "portable" application, they've over-engineered the hell out of it and use containerization to make it happen. AppImage is ok, it's only slightly over-engineered, but sadly even that doesn't work everywhere because of how much of a mess Linux is.
That's a common problem with Microsoft. One team makes an elegant design but another team doesn't fully understand it and thwarts the improvements made.
Sadly, the tendency in tech people seems to be to make things as god-awful complicated as possible.
DOS: Install applications by copying a folder of files to your disk. They include their dependencies, and they can't really conflict. Can be "installed" to removable media.
Modern OSs: Install applications using a package manager that will automatically detect conflicts and grab dependencies for you, except when it screws up and hoses itself then it is time for a reinstall. Can only install applications from managed repositories. Can only install applications to hardcoded paths. Has no concept of installing applications to removable media so you can use them from any computer. Most don't even have the concept of downloading packages and their dependencies for installation on a different computer.
The modern tech solution to the problems caused by package managers? Containerization.
Sometimes I feel like it's a sport to see who can come up with the most convoluted pile of abstractions to solve the simplest problems.