You're best off asking at the BF2 forums. I'm sure someone else has had this same problem and posted about it.

Just a thought, have you got a virtual drive on your machine? Maybe the BF2 anti-piracy junk doesn't like it and shuts the game down.