After fiddling around with BF2 due to the bad patch I have managed to fix the laggy menu problem in BF2.
Basically all you need to do is delete a part in the target:
"C:\Program Files\EA Games\Battlefield 2 Demo\BF2.exe" +menu 1 +fullscreen 1 +szx 1280 +szy 1024
Is what It maybe orignally, I myself had the extension for the 1280 x 1024 resolution.
All you do is delete the "+menu 1 +fullscreen 1" part of it, it left me with
"D:\Program Files\Games\Battlefield 2\BF2.exe" +szx 1280 +szy 1024
Obviously it varies where you installed it but just delete the menu part of the target.
Right click on the shortcut and do the stuff.
Just interested on how many people this works on.