Again, my knowledge of joystick drivers on linux isn't great. A joystick needs a driver, the usbhid driver contains everything they should need but manufacturers like to be awkward and do things their own way through their own drivers. The basic functionality of your wheel is supported by usbhid, force feedback is supported through MadCatX implementation, I'm not even sure where he added it (I'm using an older kernel) but I'm guessing its now part of usbhid.
$ modinfo usbhid
filename: /lib/modules/2.6.32-30-generic/kernel/drivers/hid/usbhid/usbhid.ko
license: GPL
description: USB HID core driver
author: Andreas Gal, Vojtech Pavlik, Jiri Kosina
srcversion: 84CAE6E46ACCA3B9F140D12
alias: usb:v*p*d*dc*dsc*dp*ic03isc*ip*
depends: hid
vermagic: 2.6.32-30-generic SMP mod_unload modversions
parm: mousepoll:Polling interval of mice (uint)
parm: ignoreled:Autosuspend with active leds (uint)
parm: quirks:Add/modify USB HID quirks by specifying quirks=vendorID
roductID:quirks where vendorID, productID, and quirks are all in 0x-prefixed hex (array of charp)
The last line gives details of how to pass parameters to the driver (this doesn't apply to all modules and its not always visible with modinfo). In this case the vendor and product id's passed to usbhid when loading enable different functions, usually when the manufacturer hasn't used the standard signals defined in the USB HID specifications but has made use of the vendor defined signals. This is still covered by the USB specifications but it make life difficult
Thats the basics of whats happening, I think usbhid has more ways of passing parameters, I kind of remember something about the 900deg function of your wheel being separate to the force feedback function but you will need to either read through the source (not that difficult, just takes a bit of getting used to) and/or check with MadCatX.