I find that scheduling activities with other people that start at around the time that you want to finish work is very effective at enforcing sane working hours.
I meet a friend to go climbing two nights a week, which pretty much forces me to stop working at a certain time two days a week. Having those two days anchored seems to help stop the other days drifting into other time zones.