I have an older HP PSC 2110 all-in-one Printer-Copier-Scanner connected to my Linux box. The printer and scanner functions are shared with all of the computers on the network, including the Windows machines. (SaneTwain is best way to connect a Windows client to a shared Linux scanner).
Tonight I was trying to scan some images for a proposal, but the scanner kept timing out. At first I thought it was a configuration problem, but eventually discovered it was a problem with the printer itself. The Linux HPLIP diagnostic tools didn't report any meaningful errors, so I opted for the next most logical step: I took the printer apart.
As it turns out, the problem was simple to fix: I just cleaned the glass on the scanner bed with some isopropyl alcohol. Apparently, the scanner calibrates and aligns itself along a black and white border under the glass at the end of the scanner bed. If it can't get a clear read on the contrast, it gives up.
For reference: More DIY printer-fixing tips can be found at fixyourownprinter.com.