Whenever a mutation happens to occur, there will by necessity be a difference between father and son. (The most I've seen is two.) Cousins can easily differ by one.
The tests themselves are accurate. But interpretations often aren't, and manually inputting haplotypes can be rife with errors. They might either be typed in wrong, or not use the conversion factors when translating between companies who count STRs differently. The non-recombining part of the Y chromosome (where the tested STRs reside) isn't influenced at all by the mother.
In many cases, the common ancestor probably lived before surnames were widely adopted.