This article is worth a read. Based on interviews with researchers at Microsoft, it examines the role that interruptions play in computer UI design. In short, computers as they are today do not have a way to determine if you are busy or not when they decide to interrupt you, or let others interrupt you. Researchers are trying to learn as much as they can about how we work so they can address this problem.
The theme is a relatively old one. These days, we are always dealing with a deluge of information. Now, rather than just efficiently displaying it to us, its also necessary to determine if it's the right time to notify us about it.
On the other side of the coin, I think that computers should do what they are told to do rather than try and make decisions for us. This area of study walks that line. I can envision numerous problems that will not likely be accounted for in the first generation of computers designed to anticipate our work habits.
A good first step may be something as simple as "smart status" for Instant Messaging. There are time when I really don't want to be bothered with messages at all. Other times, I'd like them to be displayed, but not in the forefront of my desktop. In other cases, some discussions take place over hours with messages every several minutes, instead of a traditional dialogue. In all these situations, my status is simply "available". Idle and Away only appearing when I'm not actually active at my terminal. Just addressing this issue with IM would both make IM more useful, and milk more productivity out of people.
Meet the Life Hackers - New York Times