Well, syncing your contacts with your Windows Mobile phone is absolutely dismal.  Nightmare.

HOWTO

Before You Start

apt-get install build-essential subversion

NOTES

usb rndis lite

Screw patching your kernel. Nowadays, with huge kernel build chains and auto-updating kernels, that's rather a big drag. So, I'm just going to follow instructions for kernels < 2.6.21.

Do not plug your device in yet. Run this command to make sure the kernel modules that we will be changing are not loaded.

rmmod rndis_host cdc_ether usbnet

sudo apt-get install linux-headers-$(uname -r) svn co http://synce.svn.sourceforge.net/svnroot/synce/trunk/usb-rndis-lite cd usb-rndis-lite/ make sudo ./clean.sh sudo make install

Now, plug your device in and make sure that those kernel modules have automatically been loaded.

If not, check /var/syslog. You may see that your device has been recognized as a serial device. This is bad.

Dec 19 14:59:25 lyra-hardy kernel: [ 2352.228000] /build/buildd/linux-source-2.6.22-2.6.22/drivers/usb/serial/usb-serial.c: USB Serial support registered for PocketPC PDA
       Dec 19 14:59:25 lyra-hardy kernel: [ 2352.228000] /build/buildd/linux-source-2.6.22-2.6.22/drivers/usb/serial/ipaq.c: USB PocketPC PDA driver v0.5

To blacklist ipaq and usbserial, create /etc/modprobe.d/blacklist-ipaq with the following two lines:

blacklist usbserial
       blacklist ipaq

Now they should never be auto-loaded.

rmmod ipaq usbserial modprobe rndis_host

Now, unplug and plug your device again.

AND STILL IT FAILS:

Dec 20 01:07:31 lyra kernel: [33622.272000] usb 2-2: new full speed USB device using uhci_hcd and address 4
Dec 20 01:07:32 lyra kernel: [33622.452000] usb 2-2: configuration #1 chosen from 1 choice
Dec 20 01:07:32 lyra NetworkManager: <debug> [1198141652.150013] nm_hal_device_added(): New device added (hal udi is '/org/freedesktop/Hal/devices/usb_device_bb4_a51_3fbf5000_7351_0801_150e_4554105903f5').
Dec 20 01:07:32 lyra NetworkManager: <debug> [1198141652.312856] nm_hal_device_added(): New device added (hal udi is '/org/freedesktop/Hal/devices/usb_device_bb4_a51_3fbf5000_7351_0801_150e_4554105903f5_if0').
Dec 20 01:07:32 lyra NetworkManager: <debug> [1198141652.388520] nm_hal_device_added(): New device added (hal udi is '/org/freedesktop/Hal/devices/usb_device_bb4_a51_3fbf5000_7351_0801_150e_4554105903f5_usbraw').
Dec 20 01:09:01 lyra /USR/SBIN/CRON[8377]: (root) CMD (  [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -r -0 rm)

usb rndis ng

(unfinished, I actually did manage to get lite working)

sudo apt-get install libglib2.0-dev libhal-dev libhal-storage-dev libusb-dev build-essential autoconf automake1.9 libtool svn co http://synce.svn.sourceforge.net/svnroot/synce/trunk/usb-rndis-ng cd usb-rndis-ng ./autogen.sh ./configure --enable-hal make sudo make install