I think hotels get nervous when they know you will be paying with cash. If that will be my method of payment, I put my cc as deposit, then convert payment to cash at the end.
As for the pre-payment/deposit for smoking- that is ridiculous. Why not just charge me for destroying the room? That way it is already taken care of if I decide to have a wild party!