USB scanners have their driver in UserSpace (at least in 2.6 LinuxKernels), and this is provided by the sane backend using libusb. For this to work, you will need the virtual usbfs filesystem mounted on /proc/bus/usb (although your distribution should do this automatically).
Sane should also come with appropriate HotPlug scripts. Make sure you have appropriate permissions to access the device - in Debian, the USB device file will be read-/writable by people in the scanner group, so add any users to that group (and log out and back in for changes to your current user to take effect).
Some scanners (e.g. Acer/Benq) need to have firmware installed on your PC to copy to the scanner. For Acer/Benq go to Benq website and select your product. Extract the .bin file from the driver files and edit the file /etc/sane.d/snapscan.conf at the top where it says firmware to point to the .bin file you downloaded. (See Benq3300/4300ScannerSetup for a step-by-step breakdown of the procedure with a 3300/4300 scanner.)
If you are looking for a hardware flatbed scanner that works under linux, Epson-branded Scanners seem to be well supported. HewlettPackard scanners and printer/scanners also seem to be well supported. HP have supported hpoj and hpijs drivers which are included in some distros.
See also HardwareEpsonPerfection1660 for hints about that photo scanner.
Canon have a USB2 scanner in their "CanoScan" series called the "LiDE 20" which worked fine with the SANE scanner libraries in Linux. (Apparently the LiDE 30 works as well.) It is based on the same chip as many Plustek-brand scanners, so make sure plustek is loaded in SANE's dll.conf file. This scanner is also completely powered through the USB cable, so make sure it is plugged directly into a powered hub and not daisy-chained through another device or unpowered hub.
If you have an Acer ScanPrisa 640U there are eight .bin files in the firmware download. The one that you need is u96v121.bin
The easiest way to scan is to do File, Acquire from within TheGIMP