I've been using the Cyborg for a few years now:
http://www.amazon.com/Saitek-Cyborg-.../dp/B001EYU1VO
the WPILib joystick don't let you use all of the buttons, but if you write some custom objects/dashboard you get full functionality. it has more buttons than you'll ever really need, and its fully customizable