TalkTalk and other phone services providers (BT has just changed its approach to 08xx numbers) charge for such calls because part of the income goes to the phone numbers owners.
Normally with "free" phone number packages, calls to 01, 02 and other standard UK prefixes are free of charge.
My TalkTalk monthly bill includes a range of calls to various parts of the UK and abroad (all free), but I'm quite happy to pay the odd 20p or whatever for a call to an 08xx number because it has been my choice to do so.
It's a far cry from the time when you had to pay for EVERY call (including a connection fee) and something which should be more appreciated.
I can recall the FE some years back pointing out that BT could well afford to provide such free calls or at reduced cost because, once a connection had been made and used for a minute or so, BT faced no further expense.
Some people only have a mobile, or you could find yourself in the middle of nowhere and have to call you breakdown company, who often have 0800 numbers, which are far from free to call from PAYG mobiles, and often not free on a contract phone either.
But as Stuartli points out, none geographic numbers such as 0845, 0870 etc are rarely included in landline call plans, so it's always useful to know the geographic number attached to an 08xx number.