The fix for this is (in theory) not very hard to implement. I'll be doing it for a game I'm working on.
Basically, it appears that the servers in Hawken might not be authoritative. This means that the client's movements are simply transferred to the server, and the server projects that to the other clients. With an authoritative model (with client-side prediction), the client's input is sent to the server, and a visual model of the client's mech moves locally on the client's computer to compensate for any lag. The input received on the server end is then used to run an exact copy of what SHOULD be running on the client. If it's not (i.e. lag, desyncing, or hacking), the server keeps it in check and puts the client's mech back in place to match the server's version. The server version is what is synced across to the other players' machines.
Now, I am unaware of the networking methods Hawken uses. If it already does have an authoritative server model, then either a) too much information is allowed through to the server (more than just input commands and basic client positioning), b) it is an authoritative server model without hard-coded limits on the server (meaning simple input commands from the client, no matter how outrageous, are received unquestioned) , or c) the hackers have gotten really good at what they do. I may also be completely wrong, since I didn't design the game, and there are other ways for networking models to work. But this is my educated guess.