I am such a nerd for posting this, but after a year I finally managed to get FH2 running on my laptop.
Let me set the background for this. My Laptop screen was smashed and replaced by another screen which had a refresh timing of 59,9 Hz. Windows 7 will default this to 59Hz in your screen resolution setting. I could not choose 60Hz in the Windows Screen resolution settings.
Normally no problem, but a few games, like BF2 are hard coded to only accept resolution like 60 hz, 75 Hz etc. You will get a nice black screen and return to desktop if you try to start it. I always played with an external monitor.
You can of course try to fiddle around with the video.com files, but that won't work.
Why I did to fix it is to use a nifty tool called PowerStrip (
http://entechtaiwan.com/util/ps.shtm)
* Go to Option - monitor information.
* Then in the option dropdown you go to Write custom monitor driver
* Choose the proper setting for getting windows to show 60 Hz in the display setting and save it.
* In control panel, change the drivers for you monitor to the new driver you just created.
* It will switch from Generic PnP Display (In my case) to name of your Model ID.
* Restart PC
* Go to screen resolution and change it to 60 Hz
* Play BF2.
Useful tip for people with laptop and built-in screen with timings lower then 60hz.