MasterPages strike me as a place where it's tough to get around them. Let's say you have a standard place on all your pages where error messages are going to be displayed. You could theoretically strong type the MasterPage and make sure that all view models inherit from some base class that gives you strong-typed access to the variable for setting the error message in your master page, but that seems like overkill. It's much more reasonable to do something like:
ViewData["ErrorMessage"] = "This is an error message";
and have your master page have a section displaying it:
<div class="error_message"><%= ViewData["ErrorMessage"] %></div>