My gamepad started malfunctioning after just three months of use. First, the left analog stick would slowly return to zero after being tilted to the topmost position, but only if it's tilted far enough forward to touch the edge of its socket. Later it deteriorated to just drifting down from centre position.
It does not drift in any position other than topmost and centre, or if I push the stick downward.
In this specific case, the gamepad is a Saitek Cyborg V5 Rumblepad, which allows to flip the stick and d-pad around. Drifting is observed in both possible configurations.
I tested it on two different computers, both display similar readings.
What can cause such a problem, and how can it be fixed, if at all?
I've finally gotten a replacement of same make and model. I put the new stick-and-d-pad module in the old gamepad, and it's working fine. Therefore, the analog stick itself is likely the problem, not the rest of the gamepad or connection between the two parts. Since that even before this, I lost another gamepad (completely different model and manufacturer, much cheaper) to the same malfunction, I now have reasons to believe that the majority of analog stick modules themselves - like the bit for the Arduino, pictured below - is manufactured by a single entity, and quality control is handled by the gamepad manufacturers themselves. But I digress.

I'm now curious about how this thing works (description for the same Arduino part at http://www.tinkerkit.com/joystick/ says it's a pair of potentiometers - simple enough), how it can be disassembled, maintained, repaired and reassembled, if at all.