The first step would be enabling usb host mode, some guy did it with his nexus one a few days ago, but the thing is you will still need to use a powered hub or some sort of power injector since the usb on phones and mobile devices are usually non-powered.
It's both software and hardware restriction. The software side is basically made infinitely more difficult by the hardware. There's no drivers, thus everything to make it happen would have to be made from scratch. That's difficult for a group of people, much less one person to do well.