Android - What options exist when the vendor does not supply an ADB driver for an Android device?

I would try editing extras\google\usb_driver\android_winusb.inf in the Android SDK so that it recognizes your device.

The file should have a section like this that you can extend:

[Google.NTamd64]
; HTC Dream
%SingleAdbInterface%        = USB_Install, USB\VID_0BB4&PID_0C01
%CompositeAdbInterface%     = USB_Install, USB\VID_0BB4&PID_0C02&MI_01
%SingleBootLoaderInterface% = USB_Install, USB\VID_0BB4&PID_0FFF

If you go into the Windows Device Manager and view the properties for your device, you should see the ID you need. For example, my Vibrant says USB\VID_04E8&PID_681C under Device IDs and has 3 entries with that and &MI_00, &MI_02, and &MI_03 appended under Bus Relations. I would therefore add this to the .inf file:

; Samsung Vibrant
%SingleAdbInterface%        = USB_Install, USB\VID_04E8&PID_681C
%CompositeAdbInterface%     = USB_Install, USB\VID_04E8&PID_681C&MI_00
%CompositeAdbInterface%     = USB_Install, USB\VID_04E8&PID_681C&MI_02
%CompositeAdbInterface%     = USB_Install, USB\VID_04E8&PID_681C&MI_03

You should also reboot into the bootloader, recovery mode, etc. and see if that provides more IDs. I know my Vibrant installs new drivers the first time it's connected in each mode, so likely there are more entries needed.

Then just update the driver and select this .inf file. It will probably give you an error about Driver Signature Verification. Depending on your version of Windows there are different ways to temporarily disable that; here is a good guide for Windows 8 and 10. Once it's disabled, install the .inf file and you should be good to go.

I think once you've done that then the USB Mass Storage drivers and so on will be auto-installed when you mount the device to the PC, but if not you could probably extend this process for that.