I don't have any GOOD ideas, but you can make sure
echo 2 > /sys/devices/platform/msm_hsusb/usb_function_switch
is in your custom shell commands in eclair.user.conf (enables adb on windows); then grab droid explorer, connect up, and pull up the logcat console while you're booting to see where it's failing.
Or install virtualbox and ubuntu. It's more painless than you'd think.
debarron and wstidolph: I didn't mention it because I didn't really think many people were using the subdirectory here, but the rootfs got changed recently so that the default folder it looks to is not android, but andboot. Unfortunately, the current initrd isn't aware of this change, so it's a bit of a mess.
Long story short, you can make it function the old way by putting
rel_path=android
in your cmdline parameters in your startup.txt. This sets it to look in the old location.
(The reason it got switched is because some android apps were creating an android folder when they ran, and so, if you had your files in the root of the sd card, on the next boot, it would see the android folder, look there, find nothing, and fail to boot. Once this is all sorted out, it'll work better, but it's a little ugly at the moment.)