Now that I'm thinking about it, I wonder if, given proprietary (no source) software A, you couldn't recompile every open-source dependency of A from their sources around A's release time, and get it running. Sticking to open source software as much as you can tends to be a winning strategy in the long term.
The other day I linked the sdl12-compat project, that allows programs such as UT2004 to make use of modern Linux desktop features. Sure, the original sdl 1.2 might not feel at home on a modern Linux desktop (icculus'demonstration[1] showed it was not much better on mac). But as long as the foundations are open, they can be improved upon.
Windows tend to fare better with binary compatibility. But old software feels more and more alien on recent windows versions, and sometimes just stops working, and there's very little you can do about it then, in most cases :/
This is a consequence of a userspace where most software is open source, and where distributions systematically recompile every package. As a side-effect, it is also generally more portable across architectures.
In Windows land you can download a binary and it will almost certainly run, and 10 years of updates later it will still almost certainly still run.
In Linux land you'll probably have to compile it yourself. And 10 years from now you will probably have to make changes to C files manually because APIs have been changed in your dependencies and then compile it.
Recompiling is just another option you have in case nothing else works, and it's an option that you do not have on windows. If you really REALLY don't want to recompile then I would suggest you start mirroring some of those old distros/packages yourself so that you can guarantee they will remain available to you. It would probably be prudent to keep the source packages around as well just in case you need them.
On Linux, that's often the rule for software that is 2 years old!
A quick search around the net reveals this to be false, because Windows XP Mode doesn't work in windows 10. I haven't used windows in many years so you'll have to forgive me if there's something I'm missing here, but I see quite a few pages like this complaining about XP programs being broken or requiring a lot of fiddling to get working: https://www.dosgamers.com/windows-xp/windows-xp-games
It makes no sense to me that you have no problem with this, but at the same time you're complaining about having to type something like "docker run ubuntu:precise" to get an old version of a Linux userspace running inside a container. If this is too much work then you can pay Canonical or Red Hat or any of the other numerous Linux companies for a support contract for an LTS distro. This seems to be very similar to the situation in redmond where you now have to pay for an extended support contract if you realistically want to keep using Windows XP/7.
In the Linux world, the community is pretty actively hostile to people simply wanting to run software not in the repo let alone originally compiled 20 years ago.
>In the Linux world, the community is pretty actively hostile to people simply wanting to run software not in the repo
This is wrong. Supporting software that is not in the repo has been the primary reason for adoption of containers, and also other similar things like flatpak and snap. The only difference with these is that the upstream distro cannot possibly support them because it goes outside their scope, so you have to get support from somewhere else.
Partially, but one must also give a huge amount of credit their efforts at maintaining binary compatibility of the userland for decades. This is something Linux Desktop fails at in spectacular fashion.