It's the netcode. Here's the proof. Download and play the demo. If the server in the demo version has a ping greater then 120ms your in for some non-playable lag. The reason is because it uses a lot of the original code released with the retail. It is the demo version, they won't bother with supporting issues on the demo any longer their priority will be the retail version now. However, Read the update faq for the demo patch they did work on - it's main purpose is to reduce lag. NOW the retail version fully patched is greatly improved, play a game at 120ms it's completely playable. But look at the FAQ on the patches...it's main focus is to eliminate lag. I think that the netcode was definately flawed when the game first came out. They did a lot of work to fix it...and I am sure there is more work being done to improve it in the future. I imagine that since the main buying customer is in North America that they may even be behind on netcode support for European users to focus on a North American fix.
I'm not saying I am right...actually I am completely guessing (I could even be a FOO) but I must say that I had awful lag when i first started playing and it keeps getting better so far.
My observations are based on my system of a P4 384RAM 64MB Radeon 7500 VE with Cable connection on Game Spy.