I laugh every time when somebody is like "the servers are working completely fine for me."
What we have is two fairly large problems working in tandem here.
1) The client hardly does any predictions. For example, in WoW if you move while casting a spell, your client does NOT wait for the server to say that your spell was interrupted. This is optimal. Your client obviously knows within miliseconds that you moved while casting a spell, so there's no point in waiting for server confirmation.
2) The polling rate between client and server is fairly slow. I know with at least movement, that your position is sent to the server at a rate of about 0.3 seconds. So, technically speaking, if you cast a spell, then move at less than, or equal to 0.3 seconds before the spell finishes, the spell will often go off anyway because to the server, you're still standing still when it went off.