I've had this problem too. You want to be polite but they take the piss. It was usually the last client of the day for me and even if I directly said you're leaving at xx time, one particular client pushed it by talking to an extra hour!
What pushed it for me was after one day of it I added up all the "free time" I'd given and it amounted to over £200 I'd lost! That made me feel sick, and angry. They wouldn't do overtime in their job for free.
Now, I may run over if I'm having a fantastic session, but general bookings I'm a lot stricter with. As someone else said, time is money.