Try this tip from kev4000:
In battlefield 2/mods/FH2/settings/usersettings.con (open in notepad), you can use the following settings:
SettingsManager.U32Set GSExtrapolationTime 600
SettingsManager.U32Set GSInterpolationTime 50
This is what I use for my 200 ping. You can also modify them real-time in console to optimize it for your own ping, via trail/error. Try specifically to notice it when turning and zooming, you'll see how the game tries to compensate the camera's rotation. This is real bad on Dice's part - never should the server control your camera's rotation/position.