Something is awry with DICE's coding because a patch should not take this long. Its like the guys making the patch don't know how the game is doing things so they hack changes and cross their fingers. Either that, or the game was just coded sloppily and making one subtle change creates unpredictable results. Either way this is unfortunate because I really do like BF2142! It's a great game.
The theory I have is as follows, and it actually is supported by facts pretty well...
* DICE makes BF2
* Right after BF2 goes gold DICE (sweden) is tasked with making BF2142. This is confirmed by a PC Gamer article
* Patching duties goes to DICE Canada. Their first patch contains a memory leak so bad they tell people to revert it by uninstalling and reinstalling the game
* Patches for BF2 continue to be problematic
* DICE Canada is eventually closed
* Patches for BF2142 are fairly decent, as they are done by the original team
* EA announces patch 1.4 for BF2142. It is a little dodgy with some well documented server problems
* Patch 1.4 stews over multiple iterations for months
* Rumors come out stating that DICE Sweden is hard at work at BF3
So the question is: (1) Who is working on BF2142 patches and (2) why does EA keep tasking groups that weren't the original developers with patching? Unless your code is really well documented, intuitive, etc, it will be hard for someone to just pick it up and start fixing it, especially on a project of that size.