Your time is precious. When you are interrupted throughout the day, your work day turns into work moments. When we are not productive at our jobs, we start to get unhappy. Unhappy developers are not productive developers. It's a vicious circle.
How do we eliminate interruptions?
Agile processes allow us to only concentrate on the things that matter during any given iteration. This causes less interruptions.
Starting with mocking up the user interface gives us a starting point to talk about. We can talk about real interface elements instead of abstract ideas on a page of paper. A mocked out user interface allows us to ask better questions and get faster and better feedback. All resulting in less meetings and less interruptions.
We use unobtrusive software to communicate with the customers and the internal team. Email is not a good medium for communication. It's scattered and hard to follow. Instant Messenger is not a good medium because it is too obtrusive and painful for team communication. We love and use Campfire™. It allows us to ask questions and get responses from others at their leisure. It also keeps a transaction log so people who are out for a period of time can catch up. This allows everyone to keep working and check the chat room when it makes sense for them.
The most important part in the beginning of a project is setting expectations. If a customer has come love meetings and cause interruptions, you have to ensure that they know your stance and why you have that stance. You must explain how interruptions are a detriment to the success of the project.