My buddy and I really like to do coop games with Borderlands 2, but could never really enjoy it properly. It's quite a common problem that the game experiences LAG when you play over the internet. It turned out that to fix the problem, we had to get a VPN going, but trust me, it's easier than it sounds!
At first I tried doing it with Windows 7's built in tools, but I don't think I did it right (it also included setting up port forwarding on your router and stuff like that...). My friend told me that they always used Teamviewer at his previous work, and he remembered something about it have VPN functionality as well...
We both got that up and running, and without too much hassle he connected to me and our VPN was set up.
We were blown away with the performance of the game now, it really made a huge difference! One of us (usually the guy not hosting the game) experienced hectic LAG (imagine shooting in the game, and the bullet only starts about a second later!), but last night he said it was as if playing a single player game! BADASS!!
Anyway, here's some instructions on how to get a VPN set up with Teamviewer - firstly, download it here: http://www.teamviewer.com/en/index.aspx
Next, start it up, and click "Extras":
Now select Options, and you're represented with this, click Advanced at the bottom:
Once there, click the "Show advanced options" button:
Scroll down to almost the bottom of the list, to "Advanced network settings" - and click on Install next to "Install VPN driver":
If you see this, then you're pretty much good to go:
Now, whoever has the best internet connection should host the game, with the other players connecting to him (You'll have to give your ID and Password generated by Teamviewer to them, and they must select VPN).
Once connected, you'll see a little pop up with your friends' IP addresses, and you should be able to ping them - if you can't, then you might have to set up your firewall to not block Teamviewer.
When everyone can ping everyone, you're good to go - play the game as you normally would, and voila, it should be a much better experience!