I would also recommend the 7600GS AGP 256MB DDR2 card but only get the EVGA version as it has core/memory clocks of 400/400MHz (800Mhz effective memory clock) which match the PCIe version of the card. Also the EVGA version has a lifetime warranty. An additional benefit of this card is that it doesn't require much power so you shouldn't need to get a new Power Supply (27W vs 24W for FX5700).
The XFX and BFG versions have a much slower memory clock rate of 533MHz effective. The Leadtek has a 700MHz effective memory clock.
The cheapest source @$C139.98 for the EVGA version seems to be
Can Computer.
BTW, I've used this card to play BF2142 on a P4-2.4 and it works well (40-100fps high/medium settings on 16 player map) so I expect that it would work well with BF2 also.
BF2/BF2142 are memory hogs so make sure to unload everything possible (eg. browser, IM, etc.) to maximize the available memory for the game.
Edit: added x1650Pro info
The stock ATI x1650Pro performs slightly better but costs a little more about $150 from megacomputer.ca or pvconline.com and likely no lifetime warranty. This card needs 43W so may require a new power supply.
Compare the cards in the
Interactive VGA Charts but note that the 7600 GS is overclocked to 450MHz vs 400MHz stock so has a bit of an advantage. However, the 7600GS is a good overclocker and should be able to reach 450MHz core clock easily.