During a sales call from Sky to get us to switch our phone line over to them (which we have - loads cheaper than BT!), I asked if 0845/0870 etc numbers were included in the free calls.
He said no, but you can ring all those numbers free of charge by using their actual proper numbers (which start 01, 02 or 03) which can be found on the website Say No to 0870
www.saynoto0870.com
I have already used it for calling the bank, 2 ticket booking lines and the doctors surgery. It emans you can also ring those numbers from your mobile and it's free.
Thought I'd share the wealth! Just click 'Search to find alternative number' at the top in the green banner.