The other thing that I forgot to mention is that my device will only send 50 reports before waiting for an "ACK" response back from the host. On a Windows 7 box, I was losing reports too, but once I set the HID driver buffer to > 50 (and thus it can hold a complete 50 packets from the device), the loss went away.
On my one problematic Windows XP box, I am still seeing occasional report loss even with the HID driver buffer > 50. The best I can come up with here is some sort of driver bug. When I use a software USB packet capture tool on the XP box, it sees the missing packet but it is malformed. The hardware USB capture tool sees the packet fine. So that's why I'm leaning toward driver bug, or maybe bad hardware. (However, the same hardware works fine when booted with Linux).