This, of course, doesn't deal with outside cases.
It's common knowledge that a lot of equipment is running out of spec all the time because of cheap components, bad BIOS's etc. As an example, my Asus L4500R laptop (with the latest ASUS BIOS) ALWAYS shows "over-current" under Linux on all *internal* USB ports the second ANYTHING is plugged in (and I have nearly 50 different USB devices of different types, manufacturers and quality).
The suggestion to simply stop over-current ports from working would immediately disable all USB ports, including any powered hubs that I plug into them, I assume. I can't update the BIOS any further to stop this and if I could I doubt it would solve the problem (it looks like cheap hardware to me). Therefore, you've just removed all my perfectly functional USB capability because the best BIOS I can use reports an incorrect error (hey, what's new?).
Windows XP, incidentally, runs flawlessly with all USB devices without power warnings on this laptop. This may well be fixable somewhere else, it may even be a bug in the internal USB code for my laptop which may be help in hunting such bugs down.