That sounds like Network Tables to me :) Check out the information
here. You would get the input from your custom controller in the desktop side and send it to the robot side. I think most people use a Teensy USB development board or a USB IFI Chicklet in the construction of their custom controllers (verify this?). I'm pretty sure this is almost but not quite the answer to your question. (You might want it to literally show up as a joystick, plug and play, so you could simply use the Joystick classes in the WPI library. If so, I'm also looking for a way to do this :P ).