Data sent from the server is delta compressed. In other words, it's only updated when it changes. In order to tell what's changed, it has to keep track of what's been previously sent. In cases of more severe lag, the current state of of entities and whatnot gets so outdated that it can't match up the changed state.
You can disable delta compression with cl_nodelta, I think. You probably don't want to, though.