Problem with USB 2.0
On various (early?) T40 models, USB 2.0 may not function, or may function only at USB 1.1 speeds. Symptoms include inability to connect to USB 2.0 devices at USB 2.0 speeds, the "This device can perform faster" pop-up in Windows XP, device ID assignment error messages from the Linux kernel, and frequent reboots of the USB bus and connected devices.
This is happening on my T41 as well (now), so it's not just limited to early T40 models. Confirmed on T41 models.
The source of the problem was described by Matthias Himber on the linux-thinkpad mailing list as follows:
Short answer: your southbridge is about to die, get your system board replaced. Hopefully its still under warranty.
Long answer: a number of Intel chipsets for Pentium IV and Pentium M processors have a design flaw that makes the southbridge (which contains the USB host controllers) especially sensitive to static electricity. As a result there is a (small) risk that when plugging in or removing a USB device causes damage to the chip. Usually, the first symptom is broken USB 2.0, behaving in exactly the way you described (ie, works under Windows, but only after some waiting and as if it was connected to a USB 1.1 controller, not a USB 2.0 one, and not at all under Linux unless you unload the USB 2.0 driver). This tends to lead to a completely dead chipset a short time later, so better get it serviced NOW.
My T41 shows the same symptoms. USB 2.0 works if I (gently) push the USB plug, or if I slightly flex my thinkpad. For example, it works when I put a pencil under the harddrive on an otherwise flat desk, so that the thinkpad only makes contact with the desk at 3 points (I type on an external keyboard). If I flex the other way, USB 2.0 never works. USB 1.1 always works reliably, irregardless of flexing / pushing the plug.
Clearly, this is an electrical problem and not static electricity.
This seems to be a hardware problem with the USB controller on Intel's chip or related electronics. Sending the laptop in for service may help.
If the Linux kernel refuses to register the USB device, "modprobe -r ehci_hcd" may help. This disables USB 2.0 functionality for the session.
Unloading ehci_hcd as per above confirmed to work on T41 running Ubuntu Edgy.