It's not a problem with the drive, it's a problem with your display settings. Try this out:
You video resolution may be set at something your monitor can't handle, so BF2 automatically crashes on startup.
you have to go to this file: C:\Documents and Settings\******\My Documents\Battlefield 2\Profiles\Default\Video.txt and change the resolution down to the default of 800x600.
Then do the same thing in C:\Documents and Settings\******\My Documents\Battlefield 2\Profiles\0001\Video.txt
Note: ***** is whatever your windows profile name is.
After you set it to default resolution, restart the game and change the video settings to whatever you want.