Please
see here for the latest version of DirectX.
As for your BF2142 problem, just install the patch again. If that does not work, do the following.
Uninstall the game from Windows Add/Remove Programs.
Delete the folder from C:/Program Files/Electronic Arts/BF2142
And delete My Documents/BF2142
Do a search for BF2142 and delete all the folders you see.
Download
CCleaner and use it to clean your system, as well as the registry with the Issues function (make a backup when prompted).
Finally, go to Start - Run - type regedit and press enter.
Search for BF2142 and delete all the keys you see.
Reboot and follow these steps again, there should be nothing left.
Then install the game again, and the patch.
Hope this helps.