Problem with the checking software it doesn't take into account the geographical factors so in fairness to the o2 employees, they can only say what the system tells them!
However, that still leaves you with a couple of options. First, log a call with the technical services about the problem and see what the investigation turns up. It could be that there is a problem with the local mast and potentially, you could have a way out of your contract if its not fixed within a specified timeframe. This is within the T+C's.
Now, I am curious here to how long this has been going on for. If this is a brand new contract then if you are within the first 14 days you are quite eligible to return it and cancel the contract. If its an upgrade then if you haven't moved during that time, you'll be out of luck but logging a call may help.
It doesn't rule out a fault with the iphone either so could you comment on if other phones/iphones have the same issue in your exact location?