This situation occurs when an event is triggered "outside" Angular, and Angular knows nothing about it.
The blur event is coming from the DOM, or maybe you have an AJAX callback that triggers an update. You will notice that nothing happens until you interact with the application in some way that causes Angular to wake up. George Thomas' answer is correct - you must poke the Angular $scope to make it aware of the event - but according to the Angular developers a more correct way is to wrap your code in the $apply() function like this:
$("#myElement").blur(function() {
$scope.$apply(function() {
$http({method: 'GET', url: '/someUrl'});
});
});
This way, errors in the code are correctly propogated to Angular.
I found this information in an extremely good presentation on directives by Misko Hevery - the developer who created them: http://www.youtube.com/watch?v=WqmeI5fZcho. If you've been using Angular on a project for a while, but aren't quite sure what's really going on, this video is 50 minutes of your life well spent!