Im using a joystik(Saitek X52) in FS, and it works fine. Try to unplug it and plug it back in and start the game.
I know the first battlefield games had some serious issues with sticks, I had to manually add it to the control settings file, but I thought they fixed it for BF2/2142.
You can allways try this(I take no responsiblity for it, so make a backup);
-Go to My Documents\Battlefield 2142\Profiles\000* Where * is your profile.
-Open Controls.con and scroll down to ControlMap.create HelicopterPlayerInputControlMap.
Add these lines in the appropriate places.
ControlMap.addAxisToAxisMapping c_PIYaw IDFGameController_0 IDAxis_5 0 1
ControlMap.addAxisToAxisMapping c_PIPitch IDFGameController_0 IDAxis_1 1 1
ControlMap.addAxisToAxisMapping c_PIRoll IDFGameController_0 IDAxis_0 0 1
ControlMap.addAxisToAxisMapping c_PIThrottle IDFGameController_0 IDAxis_2 1 1
ControlMap.addButtonToTriggerMapping c_PIFire IDFGameController_0 IDButton_0 0 1
ControlMap.addButtonToTriggerMapping c_PIAltFire IDFGameController_0 IDButton_1 0 1
Save the file(after you make a backup) and make it read-only.
The axis/button numbers might differ, so youre probably gonna have to change it.
Hope it helps.
gameupdates.org