OMG you guys have managed to really confuse matters.
So its obvious that he's on a 2mb connection, BT have changed the pricing scheme, and most people are now on the fastest connections their lines will support, however its not his connection that is causing the choke.
the key to rates in source is having them sync to the average FPS.
I've got a TFT @ 60hz, I've set FPS_MAX to 63, cl_cmdrate to 60, cl_updaterate to 60 and rate to 25000. I get zero choke and loss. My machine constantly pumps out 60 fps.
If your machine is unable to draw 100FPS all the time you will see choke and loss as you are trying to send / receive data your machine cannot process.
You need to ensure that your rates are set to match the FPS your machine can handle. If you can only average 30fps, then reduce your rates to 30.
Network issues will go away.