Online check-in does work, and both passengers and airlines like it, we like it because it's quicker and the airlines like it because it's cheaper.
I always check-in online but I never print my boarding card because I nearly always have hold luggage so I need to visit the counter anyway.
Getting passengers to print boarding cards is asking for trouble, bar codes generally work but it doesn't take much of an imperfection in the printed code for it to fail to read, how many times have you been in the supermarket when an item fails to read ? Passengers are printing boarding cards on low quality paper from low quality printers, it's hardly surprising that, occasionally, one fails to read.