In VS2008 there are the following options you can set to change the behavior (not sure if there are similar options in other versions of Visual Studio):
Projects and Solutions/Build and Run
- On Run, when projects are out of date:
Always build
Never build
Prompt to build <== default setting
- On Run, when build or deployment errors occur:
Launch old version
Do not launch
Prompt to launch <== default setting
Set the above options to "Always build" and "Do not launch" and you get what I consider a more ueseful behavior. Though sometimes when I try to launch the debugger and there's a build error it takes me a few seconds to realize why I'm not getting to the breakpoint I thought I'd be hitting (it might be nice to get some sort of 'toaster' type of message to knock me out of my stupor).