The 9800Pro will of course be better since its a newer card
BF2 should run fine on it, though if ou want something more worthwhile that will last you longer (I have a 9800Pro by the way adn at high settings get about 20-30 frames per second, and so i'm going to change my card soon to the one i'm going to mention)
I'd go for a Geforce 6600GT, if you are in the uk, this will cost you about £140-160 and is definitley worth while for anyone, since it'll play games at high settings with higher speds, and so you shouldn't have to upgrade for a rather long time.
If you got the 9800PRO now (not adviseable) you'll see the limits of it rather quickly now, since its about a year old.
I hope this helps