Dan Cole checked out of his Connecticut hotel early on a Saturday morning last month and found an unwelcome surprise. The Courtyard Marriott Hartford-Farmington had slapped him with a $250 charge for smoking in his nonsmoking room. Mr. Cole is a smoker but insists he didn't light up in the room. He got busted, he thinks, for throwing a few cigarette butts he had stowed in his pants pocket into the room's trash.

He pleaded his case to the front desk, but the clerk refused to take off the charge. The next day, Mr. Cole fired...