Exactly. Quality of coverage is entirely dependent on your location.
I ditched O2 in favour of Three as the data signal for O2 where I am (Edinburgh) as pretty poor. Three is a lot better and way cheaper as well.
Tethering is another option but depends on your phone provider and the contract you have. You can tether without officially having it on your contract but they can detect it. I have all you can eat data on my phone but no tethering. It doesn't stop me connecting them but after a while they detect it, flash up a message on my phone and the tethered device and I have to reboot my phone to get my data connection back.