We've all seen it happen where you fly a distance when the server is lagging a lot, and then boom you're dragged back to point A. It's really irritating.
This is because when the server is under heavy load, ticks may _not_ accurately represent 50 milliseconds, while client-side they still do. Let's say you move from 0,60,0 to 50,60,50 while the server is frozen. Because of the overload, those position changes will not be processed until the current heavy-load issue is out of the way. But the server still thinks that took _1 tick_. Result: the server thinks you moved ~70 blocks in a single tick - nope, get your ass back here.
The long and short of it is that server main thread times and ticks cannot be trusted to provide an accurate representation of time difference, and this causes issues when handling clients who aren't lagging at all.
"nope, get your ass back here" 馃榿
Contrary to this issue's original thoughts, this is more often the result of network lag as opposed to the server lagging behind. That's an issue that can't be completely fixed, only worked around (see "blink" hacks on PC servers).
Most helpful comment
"nope, get your ass back here" 馃榿