You have a NVidia or AMD or Intel GPU?
For NVidia you can download NVidia Inpector,
NVIDIA Inspector Download version 1.9.7.2 and cap the framerata at 1FPS to 10 FPS less than your monitor's refresh rate. So most monitors are 60Mhz , i.e. 60FPS, so cap it at 50FPS or 59FPS.
Install NVidia Inspector.
OPen it, Driver Profile Settings Window is first window.
Top Left, Find the Battlefield 2 Profile.
You have to then find the button that says "Add Application to Current profile"
Then add your PRBF2.exe and PRLauncher.exe programs one at a time to the profile.
Then find the "Frame Rate Limiter" and set it to 50FPS, 58FPS or 59FPS.
THEN CLICK "APPLY CHANGES" IN TOP RIGHT CORNER.
A very good online guide for more details:
Guide:NVIDIA Inspector - S.T.E.P. Project Wiki
---------------------------------
For AMD use RadeonPro
RadeonPro - AMD Radeon? Unleashed | Unleash the power of your AMD Radeon? graphics card with RadeonPro , set 'Dynamic Framerate Control' to 50 fps to 59fps for example, you can then force 60HZ triple buffering and vsync and then enjoy no screen tearing and a smooth 50 fps. I suggest trying adaptive VSync, but it's been a while and I forgot which is better with the BF2 engine. (Perceived) Input lag is the enemy here when the Vsync is enabled.