It is natural to get caught up in all the what if’s that can happen in the real world. Being knee deep in use case and task analysis activities make it easy to forget that just because a user can do something, doesn’t mean they will. The important thing is to make sure you don’t force your interface to be super-tool that can accomplish any given task a user might do, not want to do just simply do.
When designing an interface it is key to know what will be the users primary goal and any possible secondary goals. These are the activities that need to be supported by the system, even if the system performs the goal automatically for the user. Secondary goals can be easily be accomplished by simple navigation offshoots or modal behavior.
What makes it acceptable for this to divert the user from their established path is the fact they NEED to perform an abnormal task. The user will know that ‘Hey I need to do something special here’ so having to take extra steps won’t be out of their expectations.
The advantage to modern interfaces is the fact they have the dynamic ability to support secondary goals by incorporating the flow into the users established path. Whole sections of the screen can appear and disappear, with the layout refreshing to support the new or missing elements. This avoids the ‘evil’ pop-ups of the past and keeps the user in their overall path, just adding a subset to it on an as needed basis.