I'll share my info here:
First thing to note is that behaviour is basically unchanged when I put my PC in DMZ and disable every firewall.
Server list often loads slowly and sometimes not at all.
Many servers are listed as having 1000 ping, all servers are over 100 ping.
Joining a game works until I get into the game itself. I can see other players running around and shooting each other, and my ping is around 30 (I am hovering above the map at this point). Then after a couple of seconds my ping is 999, and soon after I get kicked ("your connection has been lost" or something similar). Very occasionally it lets me spawn and even rarer it lets me play for a while.
What do I suspect? Crysis 2 looks very much like a UDP port scan attack and as such is blocked by some device along the route from my computer to the server. The router I had before listed UDP port scan attack in the logs after a failed attempt to join a game. Even when I put my PC in DMZ, there are other devices (owned by my ISP) which also perform some kind of rudimentary packet anolysis and block Crysis 2 packets such that they do not reach their destination. It svcks that Crytek need to basically hack their way around the system but other devs manage it so they really have no excuse.