If you have a programmable controller (I have a Logitech Rumblepad 2), you can program it yourself to work with the game, but I can tell you right now that it's going to feel awfully clumsy relative to a mouse. With the Rumblepad 2 you can set up the analog sticks to emulate the mouse X and Y axis, and you can assign the left and right mouse buttons to the gamepad's shoulder buttons, or any of the other buttons on the gamepad for that matter. Furthermore, you can assign zoom-in and zoom-out to up/down on the D-pad.
The gamepad is very flexible in that you can assign any keyboard key to any button (or the D-pad) on the gamepad. You can assign four different keyboard keystrokes to the D-pad, or use it for character movement if you wish. I typically use the left analog stick for character movement, however.
Because I'm clumsy with a keyboard, I like to use a gamepad/mouse combo with PC FPS. I hold the gamepad in my left hand and the mouse in my right hand. I can access all of the the buttons on the left side of the gamepad with my thumb and index finger. I also use the gamepad with RTS games - mostly just using the left analog stick rather than the keyboard's arrow keys to scroll the screen.
Here's how I have my mouse and gamepad set up for Ghost Recon Advanced Warfighter 2:
Left analog stick: Move forward/backward and strafe left/right
L1 Button: Lower stance
L2 Button: Sprint
Start Button: Night vision
L3 Button: Reload weapon
D-Pad Up: Stance up
D-Pad Down: Go prone
D-Pad Left: Use item
D-Pad Right: Cycle weapons
Left Mouse Button: Fire weapon
Right Mouse Button: Optical sights/zoom
Middle Mouse Button/Wheel: Issue squad commands
Auxillary Mouse Button: Cycle fire mode
Note: Sorry for getting carried away here, but I hope I helped you in some form or fashion.