The closest I have came to accomplishing what you want is multiple surfaces. This also can prove time consuming but it is a little more dynamic. There is two ways one could go about this and one may be more desireable then the other depending on your workflow. I have not used navisworks but this may work.
1: Create new surfaces for differing materials and assign the coorsponding material to each. Paste the design surface into each of them and add boundaries around the corresponding areas. So the asphalt surface only shows asphalt and the grass only shows grass etc. This may require using various boundary types (outer, show, hide, etc). Once this is done you should have a site that looks as desired. The dynamic part comes from the fact that if you edit your design surface and update all of your surfaces they too will change.
2: This next option is experimental for me and I feel has flaws. If you were to create, for example, a parking lot entirely out of featurelines, and then use the infill grading tool with it set to automatically create a surface you could accomplish the same as option 1. You would not need to take the time to create boundaries as this automatically does this and basically allows you to just fill in like a paint bucket tool where differing surfaces will go. In the end you past all of the grading surfaces into your design surface. The flaw is that you may also want to add points to each grading surface independently and this could be a little tricky.
In the end you will import multiple surfaces into navisworks. This may actually be a bonus allowing you to pahse different surfaces.
Autodesk! Please make an option for multiple materials on one tin. You could just allow us to select bounded areas like hatch but also with featurelines.