Beagleboard USB Packet sniffer
It's a little more complicated than simply forwarding the raw USB packets between the two interfaces, and it isn't completely transparent to the USB host.

The BeagleBoard actually needs to behave as a one-port USB hub, which is how the USB host views it. Then, when you plug the USB device into the BeagleBoard, the host can enumerate it through the BeagleBoard as though you had plugged it into any other ordinary hub. But now the software on the BeagleBoard has the opportunity to copy and/or record the USB packets as they flow through this "virtual hub".

So, it isn't exactly like plugging the device directly into the host, but it gives you enough visibility to debug 99.9% of USB issues. But there are some corner cases, usually relating to the enumeration process itself, that this can't help you with. For those, you need a true USB analyzer.