I don't have the game, but I have seen this problem fixed with BF2... Go into your profiles and find the folder that uses the last name you signed on with when playing 2142 and delete just that folder... Your default profile will let the game start, but you will have to re-make the profile you just removed.
Like I said I don't have the game so I am guessing, find the profile at...
C:\Documents and Settings\Steve\My Documents\Battlefield 2142\Profiles
Open each folder (name of, 0001, 0002 and so on) until you find the name you last played with and again delete that folder, the name will be in the Profile.con file.
or
If bf2142 has it, just rename the Global.con file (to Global.BLK, just in case you need it) that should be found in the path I gave above. Again this in turn will make BF2142 start up on the default profile, BUT that is not going to fix the crash "if" it is happening because of the last name you signed on with.