Sorry to have such a pushy subject line, but I have been having terrible trouble getting my board (DFRduino '328) recognised by XP and have just made a crucial discovery which I haven't seen anyone else mention before. It could save a lot of hair being torn out and boards getting binned.
After getting "Device Not Recognised" on three different machines I got really fed up and started to vent my frustration on the board itself. I have been doing some very detailed crafting recently and happened to have a long hatpin near me on the table. I unplugged the USB from the board, pushed the pin longways between the ATMega328 and it's socket along its full length thinking "I might just yank this thing out and chuck it across the room!" However, as the chip lifted slightly, the legs gave a light 'click' and I suddenly recalled how many ICs fail to connect when the chips are pushed all the way down into their sockets. This could easily happen during transit (or while receiving an frustrated thump from its owner
I plugged it back in, XP recognised it immediately, a new COM port appeared and I uploaded a sketch without any problems!
So, if you've been through all the troubleshooting options, just grab yourself a fine pin/needle/toothpick (as long as the large chip on your board) and give that chip a little lift
Hope this helps,