I'm not aware of any mobile network that blocks an 0845 number by default, can you elaborate on who does?
As for what an 0845 call costs from a mobile...
Vodafone - 14p/min
O2 - 20.4p/min (or 20p-25p/min if Pay As You Go depending on tariff)
3UK - 35p/min (20.4p/min if on One Plan tariff)
EE - varies anything between 12.5p/min and 40p/min
TalkTalk Mobile - 35p/min
Tesco Mobile - 25p/min (or 8p/min if Pay As You Go)
Virgin Mobile - 41p/min
...so there is a wild variation. However, I might suggest that someone with no money on their pay as you go phone wouldn't be able to call a normal number, and someone on a contract would obviously pay for the call after it was made.
The other suggestion I'd make is that if there's an emergency (i.e. life and limb at risk) and you have no call time available, then use 999.
Sorry I didn't get back to this one.
The networks that block it by default are the ones that operate tariffs which don't allow "extra spend" Tesco Mobile is certainly one of them, I was offered that when I moved sister trout from
PAYG▸ to contract so she could get a semi reasonable data allowance.
Also I believe Vodafone and EE can block 08 numbers to prevent excessive spend and to prevent no bill payment risk. For 3 months when I started my Business EE Contract I had to have this feature enabled until I could demonstrate 3 consecutive bill payments (First Business Mobile Contract) and the restriction has long since been removed. I do still use that saynoto0870 service where possible though as I have unlimited 01, 02 and 03 minutes.
Be careful with the PAYG statement though. Three Mobile offer a "Bundle" service which allows X number minutes, X number texts and X Data amount for for say ^10.00. So you may top up ^10.00 and buy this bundle. You can make 01, 02, 03 and 07 calls but if you try an 08 number it won't let you.
Note to the mods: Worth moving the relevant posts about mobile networks and charges to News, Help and Assistance?