Wow, great! That was it. After activating it also the RNDIS_HOST option showed up.
Thanks a lot!_________________"Coincidence is God's way of remaining anonymous."
Albert Einstein
"The road to success is always under construction"

This option enables hosting "Remote NDIS" USB networking links,
as encouraged by Microsoft (instead of CDC Ethernet!) for use in
various devices that may only support this protocol. A variant
of this protocol (with even less public documentation) seems to
be at the root of Microsoft's "ActiveSync" too.

Avoid using this protocol unless you have no better options.
The protocol specification is incomplete, and is controlled by
(and for) Microsoft; it isn't an "Open" ecosystem or market.

i suppose i should set up a wiki account since i plan on adding stuff at some point

I'll be getting a Galaxy Nexus today, assuming the FedEx truck doesn't get lost. I assume the Nexus One steps should work for it too; I'll update the wiki if it works, unless of course I get lazy, then ill just post it here

Very nice, thanks. I also compiled everything into the kernel but usb0 isn't showing up.
Dmesg is not showing any switch when tethering is enabled.
Android 2.3.4 CM7 and gentoo-sources-2.6.39-r2 ~amd64 here.
Anything missing?

I had enabled all of the modules in the original post and couldn't get usb0 to show up either. I slimmed it down to just:

EDIT:
If you get the choice on the phone for either Mac OSX or Windows tethering, choose Windows tethering.

This worked for me, after the original (first post) kernel config failed to bring up usb0. Didn't have to autoload modules.
Using: HTC Sensation (pyramid) with Android 2.3.4 rooted (Gingerbread)
Kernel: 2.6.30-gentoo-r7

If you use wicd like I do, just change the wired interface to usb0 instead of lan0.