One of those fakes cost me my contract. I bought a USB key from a big box store. And used it to store some client work on it. Brought it into their office and nothing worked. I tested it on my servers and everything was fine. A few days later after constantly trying to debug it I copied the version from my USB key to my servers and bam! I finally get the same errors as the client.
In the end I wasted needless hours and missed a deadline over a $20 USB key (you know the cheap ones they keep at the checkout line).
2. If you knew a deadline was approaching why would you waste your time debugging a USB drive? There are plenty of other ways (including a new USB drive) to transfer the data.
1. Because the advertised capacity was 8GB but the real capacity was <1GB. There was a lot of coverage about this a few years ago. Including Bunnie Huang who had a problem with bad, fake SD cards being in his Chumbys'. The controller reported 8GB to the OS and so as it reached real capacity the controller would overwrite the first blocks.
2. If the code works on your computer yet doesn't work on the clients computer you would be lead to believe the problem is on the client's side. Honestly, how many people actually check their storage media? I didn't debug the USB drive I ran the code from the USB drive after recompiling 50 million times.
I don't see a lot of programmers trying to run diskcheck or memcheck every time they have an unexplainable crash.
In the end I wasted needless hours and missed a deadline over a $20 USB key (you know the cheap ones they keep at the checkout line).