Yes, I can. A few years back, as part of a larger project we developed a USB host controller using the NXP-1161A OTG controller that was developed on a TI DSP. We borrowed from the 1161A drivers that we were found for the Linux kernel (http://www.beyondlogic.org/usb/otghost.htm
for reference). The purpose of the application was to be able to read UBS memory sticks and data log our application to them. In addition to borrowing from Linux, we read the specs on the SCSI command set, bulk-only-transport protocols, FAT-32 specification, etc. In other words we followed the standards.
Towards the end, we were testing with several different brands of USB sticks and USB external HDDs (which have the same command set). This by the way is an example of where the structure could come into play, if for example the device supports both the SCSI and ATAPI command sets on different endpoints. Anyway, we discovered a couple of the devices would enumerate, but would not mount as a disk.
It turns out that as part of the FAT decode you need to do several computations involving things like the number of sectors in order to be able to get the information needed to access the disk. After several days of head scratching, we came across an article (I think it may have been on LVR.com) that said that many vendors erroneously represent (I think it is the sector count) as being off by 1. When we adjusted this count per the article, the device worked perfectly. We still had a device that was an old 16Mb stick that I got at CompUSA that was made by Poinchips that would not work with our system and would only work with Windows.
So, in this case, we needed to hard code a work around into the software that it try this fix. We could use the vendor and device IDs as flags indicating that we needed to adjust the count. In our case it was simple to try the adjusted count if we received an error, but in a case like Windows or Linux where you have to support thousands of different devices, a table of the corrections could be immensely helpful.