Three main scenarios I see this under
Failing drive
External USB drives, especially one that I presume to be as old as that (320 has not been standard size for few years now), are prone to this. Windows often has a hard time with failing drives as well.
Failing USB ports
Usually about 6 years in I see these starting to give up the ghost especially on cheaper motherboards. One possible symptom is "this port is only USB1.1, click here to see a list of high speed ports" although it can be the result of the scenario below as well. Another is devices that suck down a bit of power (things that charge or can be used sans (good) battery on USB being the big two for more)
Good news is PCI USB cards are all of $10 USD and the PCMCIA ones are nominally more expensive if you happen to be stuck with a laptop.
Badly configured or bad drivers for USB ports/motherboard.
BIOS sorts the configured part (even locked down vendor nastiness can usually have this done)- it will probably say something like legacy USB support. Disable it if you have to (keyboards and the like should still work fine) or if it has been put onto "always legacy" or another option that deals with hi speed support has been disabled then sort it. BIOS resets occasionally do it, updates occasionally do it, errors occasionally do it.
Most USB drivers are windows only affairs (that is to say windows will have it sorted) but if you can find chipset drivers for your motherboard.
In all cases I usually try using a linux liveCD (assuming it is a not a proper forensic grade job puppy linux usually comes through
http://puppylinux.org/main/How%20to%20download%20Puppy.htm ) and you can punt it out through network shares* or to other USB drives or even in a pinch format another partition and stick things on there for a few minutes to allow you to grab things off)
*stock puppy linux does not have sharing ability but you can access and write to other shares so set up a "allow users to change my files" share on windows and send things across a network.