Am I missing something, what exactly about BF2 is more complex than Doom3, Half-Life 2, CS:Source or any other type of game? As far as I can see it is no more complex than the average game, physics wise HL2 has more breakable environments and better code - how often did you play hl2, kill someone and watch as the body got stuck in the scenery and span around? - happens in BF2 all the time. Shader wise Doom 3 and Half Life 2 have much more to offer than BF2, surfaces in BF2 don't look better, how about the shiny gold sacks of sand on Special Forces, very realistic or all the non descript walls and floors, hardly any bump mapping at all.
So thats physics and graphics wise, not as good, so if it is more complex that must be because it was coded by chimps. Feature wise, well wow team fortress and team fortress classic had several classes for you to play, and they were capture the flag too.
All that BF2 is better at is sucking up pc resources, I had to upgrade by 3500+ and 7800GTX machine to 2Gb RAM just to play the bloody game smoothly, when I played hl2 on a 9600XT smoothly with my gig of RAM.
As for all the hard work programmers have to put in to make games compatible, well can I remind you that this is the same for any bloody game. As has been mentioned so many times, its not like you have to use each pc config and consider every one, you use tools like directx that provide a bridge between the hardware and software to help you.
BF2 is still the only game I know that takes 10 minutes to 'optimise' itself for your computer every time you change graphics options, other games simply change a single line in their cfg to choose the appropriate rendering path. BF2 is still the only game that I can start, click to join a server, go and take a piss, come back and still have to wait for the map to load. Its only saving grace is that its actually quite a good game, just has a shitload of things wrong with it that can never be defended.