I ran into this problem when dealing with parts of a user profile such as Name and Address records. If the user had an incomplete profile I want the account management view to detect a null Address record and display an Action link to create a new Address or display whatever address data is available.
As described by others when null is passed the overload for Html.RenderPartial gets triggered and the parent View Model is passed through. I ended up converting my partial views to Display and Editor Templates to get around it. Here are some How-To articles from: Hansleman and codeguru
You get better re-usability from this method and it preserves the null values:
In your View:
@Html.DisplayFor( m=> m.Address)
Then handle the null value in the DisplayTemplate.
@model Namespace.Models.MyObject
...
if(@Model != null){
...
}else{
...
}