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.
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.