I had that problem a long, very long time ago with Battlefield 2. The engine in BF 2142 isn't much different, so I suspect that it has to do with the refresh rate. Maybe not, but maybe it is, I guess you've got nothing to loose in reading what follows, it may or may not help you.
So, Battlefield 2, for instance, wants to start at 60Hz and 800 x 600. When I had that issue I had forced a refresh rate of 100Hz for 800 x 600 since I played old games at that resolution which required a much higher refresh rate since I was (and still am) on a CRT monitor. I was using a program named Refresh Force (otherwise known as ReForce) to force the refresh rates. So when I heard that BF2 needs a refresh rate of 60Hz to actually start (at 800 x 600) I used that same program to set a refresh rate of 60Hz at that resolution, and then Battlefield 2 started without any problems.
To reiterate, BF2 starts at 800 x 600 at 60Hz, and the actual introduction is set at that resolution, but as soon as you actually arrive in the main menu the desired game-play resolution you've set in the in-game options apply, so when you get to the main menu (well, "you" as in "me", I'm talking for myself here) you get the actual desired resolution which in my case was 1280 x 960 at 100Hz back then.
Alright, so try a different refresh rate. If you're using an LCD monitor, honestly then I don't know what to say since LCD monitors basically laugh at refresh rates, they're useless or barely do any differences, there's no flickering, no nothing, but Battlefield 2 or BF 2142 certainly doesn't "known" it's being ran on an LCD so maybe that the problem I've had would persist on LCD's, but LCD's very often run at 60Hz or sometimes 75Hz, but the default is usually 60Hz, so on an LCD, logically, that problem I'm describing should never happen, it should only happen on CRT's on which refresh rates were changed from their default Windows values which I believe Battlefield 2 and perhaps Battlefield 2142 refers on to start up.
So if you're on a CRT monitor try that: 1) Download Refresh Force 2) Set a Refresh Rate of 60Hz at 800 x 600 3) Change your screen resolution to 800 x 600 to apply the change, no need to reboot the PC and then 4) Come back to your previous screen resolution, and finally 5) Try to start up BF 2142.
Hope it helps.