I have just posted a reply on the Radio 4 discussion area, but will repeat it here as it will probably work for any other call provider, such as the Post Office?
"There is a way to defeat Onetel's cost of 0870 calls. If you have signed up to call automatically (carrier pre-selection) via Onetel, but still pay your line rental to BT, you can 'revert' to BT for a specific call by dialling the prefix 1280 before the call. This will route the call via BT and so you will be charged by BT - not Onetel. This means you can at least take advantage (if that is the right term! ) of the cheaper rates that BT charges at various times of the day. I did this all the time when I lived in the UK, and the 0870 charges then appeared on my BT account. Obviously, wherever possible, I chose to make the calls at a time when the cost was the least!
The advantage of this is that BT have their charges regulated - the other telcos don't. It's still an incredible rip-off, but at least it is one way to partially offset the cost."
Comments on this welcome (even though - thankfully!! - it doesn't affect me any longer. Most - 95%? - US companies have a 1-800 = 'freecall' number.......
)