One word. Doom. It's a simple name that can invoke a lot of things. Deathmatch, modding, programming. Doom is and was a lot of things to a lot of people. It's also known for being ported to everything. Why is this the case? Why Doom and not its older brother Wolfenstein 3D? I have compiled a list of six reasons why I think that's the case, based on my own knowledge of Doom and programming in general.
This one is probably the most obvious, but it's worth mentioning. In 1997, the source code to Doom was released. Originally intended to be accompanied by a book, it was eventually released standalone. Why is this important? It means that people can work with the original code without reverse engineering it. Reverse engineering the Doom executable actually got pretty far in the early days of Doom modding. However, after the source was released, Doom mods became immeasurably more complex.
The C programming language has a long history, going back to the 70's. The big deal about C when it came out is that it was "portable". As long as there's a compiler for the platform, porting a C program is much easier than porting something like assembly code. As you can imagine, becuase C is so old, there's compilers for every platform imaginable. Langauges like C++ and Objective C are also backwards compatible, providing more opportunities. In addition, in languages like Java you can include C code via a wrapper (this is how most Android ports are made).
When id software originally released the source code, they released the Linux version's code due to legal issues with the sound code in the original DOS version. Almost immediately, people got to work porting it back to DOS, hence the term "source port". Eventually, this lead to many forks of the code into different source ports, such as ZDoom and Chocolate Doom. This means that there's always people working with the Doom code, and thus keeping it up to date. The one thing all these ports have in common is that they can use the original Doom assets.
Doom was released in 1993, before processor speeds were measured in gigahertz and GPUs were ubiquitous. In order to pull off a 3D effect, Doom was programmed very efficiently. Very few processor cycles are wasted in Doom. The engine itself isn't technically 3D -- limited calculations are done in regard to the Z axis. Data is packed very efficiently in the WAD files. As mentioned before, it was programmed in C, which lets you get pretty close to the metal; Doom has its own memory manager. All of these things add up to mean in order to run Doom, a system doesn't need to be very powerful, relative to today's technology.
Wolfenstein 3D was the grandfather of first person shooter games, but Doom really got the ball rolling. For a time, FPS games were called "Doom clones". Other FPS games were opened sourced, but they don't get the same kind of love as the juggernaut that was Doom. In the 90's, Doom was everywhere. Doom added words to the gaming lexicon -- frag, deathmatch, etc. A lot of people have nostalgia for Doom, and most gamers have at least heard of it. It's an obvious choice when it comes to the novelty of porting a program.
Doom was the king of the shareware scene back in the day. Shareware games were like demos, but more. In the case of Doom and many others, the first third of the game was free, and was encouraged to be shared. If you wanted the full game, you had to send money to id Software, and they'd send you a full copy of the game. (Doom 2 was released only as a full release.) This means that to this day, people can get their hands on some Doom for free. There's also the excellent Freedoom project, which contains only free (as in freedom) assets.