I would also get the "2142.exe has stopped working" message, especially while loading a map. I could always fix it by deleting my profile settings or reinstalling and it would play fine. The problem was, as soon as I would restart my PC the problem start up again.
The Solution: I found a free program called Game Booster that was recommended to me by a buddy of mine. What the program does, is it temporarily stops unneeded Windows process during gaming. After you are finished with the game, you would then click a button to reactivate all Windows processes to return Windows to it's original state.
Why am I telling you this? By running Game Booster, BF 2142 now works. I'm assuming in Vista there is a particular process that is conflicting with the game that is stopped when Game Booster is enabled. I can confirm that this has worked on two systems with Vista Ultimate 64bit.
* - Edited to remove link, post is verging on SPAM, so I'll leave it for the potential benefit, but the direct link goes. - TGGA