And that will always be a tightrope that companies have to walk. I work for a company that employs over 75,000 people and our policy is standard class only using advances wherever possible, £80 max for a hotel (more in London I think) and £20 max for dinner with no alcoholic drinks allowed. I don’t have a problem with that, though many of my colleagues do. Ultimately if I want to go to the pub, I don’t see why work should pay for it.
I would say "no alcoholic drinks allowed" is unduly stingy and penny pinching, to be honest. One alcoholic drink with a meal (or two at a push) is quite reasonable in my book and often costs the same as a soft drink anyway. A night on the lash rather less reasonable. Just give an agreed amount for dinner and people can spend as they see fit.
Similarly I don't mind Premier Inns, Ibises etc (indeed those are my preferred chains if booking for myself - the former in the UK, the latter outside), but if you want me to go away on business a Travelodge is just not acceptable. They are dirty, poorly maintained and uncomfortable. If the accommodation is of a lower standard than an average house, it is unacceptable to require it.
At least in the UK you don't get the US thing of asking people to share rooms. I'd refuse to travel in such a case.
Similarly if the business wants to save money by having me come home at 9pm on an Advance instead of 5pm on an Anytime, best be willing to cough up for dinner out of the savings.
While people do vary (I probably spend more on walk-ups than average people might on Advances these days) I think the principle that the policy should be what a reasonable average person would do if it was out of their own pocket is about right (the man using his own Oyster Card on the Clapham omnibus?). Some companies go way, way beyond that and are downright unreasonable.
Add to that, anything that is downright unsafe (e.g. asking staff to drive to the airport at 3am instead of taking a taxi) is totally unacceptable.