Humm
Resolution problem IMO...
Download BF2 cleaner and run it,cleans BF2 cache...etc
http://www.strategyinformer.com/pc/battlefield2/tool/13956.html#
If that doesnt work,set your videocard resolution like the native res on your sreen. ( or the res before the videocard change ).
Third option is to change the BF2 video.con file to the actual resolution you have.You have to change 800X600@60hz to ....X....@60hz (... is your actual res )
Last resource,re-install BF2 + patches.
Witt