What is involved in installing Android onto a device? I just picked up a Viewsonic G-Tablet.  It's got killer hardware specs and is running Android 2.2 but it's barely usable because of this terrible TapUI that's crippling the device.  I have been following a thread at the XDA forums where users are attempting to root it and get a custom ROM installed, but I'm wondering how hard it is to just wipe it clean and get the stock Android 2.2 running on it.  The people who have rooted and blocked most of the TapUI report losing access to their settings, which I guess is heavily integrated into the TapUI.

Is the problem that Android 2.2 doesn't support specific hardware and someone needs to create a ROM with all the necessary drivers?
Basically you have to compile Android for that device with its drivers.  Example of compilation process.  An older example from the official dev site for building 1.6 for the G1.

Devices like the N1 and G1 (Dev phones) let you easily put these images on your phone after compilation, because that is what they were made for (unlockable and hackable). I believe their drivers are in the official Android source (I could be wrong, but they are easily available).

All other devices don't come unlocked, so first you have to unlock (root) your phone to be able to write anything else to it.  

I've never compiled Android or a ROM, so I can't give you much more details than this.  Essentially there are proprietary binaries (the drivers) that are also needed for each specific Android phone in order to get it to run on that device.  So you either have to get those drivers from the vendor or write them yourself.