Used to get a lot of drift on my old PS2 controllers. Sometimes you can get lucky and offset it by calibrating it in the properties of the Windows controller snap-in. Mileage will vary depending on how bad off it has gotten.

Run joy.cpl from Search/Run box, then go to the properties for your controller to see the testing page. Click the Settings tab and you will have a button to calibrate it. Makes you walk through to set the idle center, range of motion, etc.