Interesting thread - been threatening to do it for 40years, but somehow I never quite get there. What 'zoomkat' mentions above about using a cheap PC game controller, is good advice & good value for money -- all you have to do is desolder the joystick pots/switches, and attach wires instead, hooked-up to your custom hardware. It might be a tad 'old fashioned' to use 10k pots on all your controls (plus the things wear out), so you might think about augmenting the setup with an arduino gizmo...
...an example might be steering - a typical approach would be to attach the pot at the end of the steering shaft, and hardwiring that to the controller board ; an alternative might be using mouse optics to read the movement of the shaft, such being connected to arduino which in turn is connected to an i2c digital potentiometer which gets hardwired to the hacked controller (and one supposes you could replace all mechanical pots with optical or other systems like this, connected to an arduino which outputs via digital pots). I'm unsure of the benefits, but at least there's no pots to wear out, and in theory you could adjust/tailor the output from the arduino before/to suit the controller board. Btw, using a digital pot means an arduino -can- do a joystick if you want, but we're not talking sticks here...
...you could get goofy too, using bits&pieces from real cars from you local wreckers. An idea I had was using a real accelerator pedal/arm, still hooked up to a real throttle valve body by a shortened cable so that it felt a lot like the real thing -- the goofy bit, would be using the TPS (throttle position sensor) on the valve body to obtain throttle position (just like a car's ECU does =) And I've often thought about what it would be like to look at brake pedal pressure (rather than just pedal movement/travel) to get the analog brake data. You could make some kind of headset with a mems sensor in it, an get an arduino to blip head turns as 'look to apex' (mapped to dpad in the game, and hardwire the arduino outputs to there)..
..someone mentioned the olde 'gameport' (also doubled as a MIDI interface)..well, yes, but it's as deprecated as a floppydrive, no longer features on modern hardware, and doesn't offer as much I/O to play with. I also see an instrument set above from some car dash, and for sure an arduino could be used to drive those things -- the issue is, how many games are out there that actually output speedo/tacho data to userspace, so that you know -what- to display? (do such game titles even exist?) And even if they do, you'd have to decode/obtain that data somehow -- same goes for forcefeedback ; if you hack an xbox controller, it won't decode FF -- it will decode the signals for the 2 rumble motors, and you could interface those signals with an arduino to drive other motors/solenoids for those fx, but if you wanted FF you'd have to do something fairly obscene like hack a G25/27 or any other wheel-set that decodes FF instructions...or such'n'similar..
..I still don't know if I'll get to doing it before I die =)...