I run sessions every Monday evening at a pub in the centre of London, and most people come to play straight from work. Up until recently we were attempting to start at 7pm, but there were one or two players out of five who struggled to get there on time, which was causing disruption to the rest of the group.
We talked about this as a group and decided to move the start time back to 7.15pm, with people asked to arrive early enough so that we could start playing at that time. However, what has actually happened is that some people are now arriving at 7.25, which means that overall we are losing a good half an hour of gaming time before everyone is sat down, knows what is going on and are ready to play.
I find this extremely frustrating and disrepectful to me as GM and to those players who make an effort to arrive on time. The problem is that I'm not sure what, if anything, I can do to stop this from happening. I've considered various approaches, with the most severe being asking disruptive players to leave the game, but I really don't want to have to do this.
So, my question is:
What strategies are there for minimising the disruption caused by players that turn up late to sessions, and what can I do to prevent this from happening in the first place?
EDIT: Although I've marked one of the answers as 'best', I think there are a number of good responses that offer different approaches to solving the problem and preventing it in the first place.