It's legal to refuse tender. Private businesses can make their own policy to accept certain tenders for services. If they refused to exchange goods or services because you have a large bill, then there is no debt to satisfy. With that said, I'll give my 2 cents (paying with a nickle )...
As former cashier, I found it annoying as hell when I just opened my register and then someone hands me a large bill. I would then have to go get change from the manager. One day it hit me, smaller stores are generally the only one with these policies, right? My theories are that they simply don't always have the cash on hand to give change for large bills. They don't keep such cash on hand due to employees' theft or external robberies. I don't think businesses are that concern with counterfeit, I mean, how often does this happen in this day and age?!?! (maybe it happens more, but I be more concern with checks than cash..) The policy will vary from business-to-business but if I was going to bet on the reason, I would bet on it having to do with lack of cash on hand to pay out for larger bills in many cases.
Edit: I Urban Dictionaried the word "Manky Slag", will you please define this for us?