In this post Jeff Prosise talks about the new INavigationContentLoader interface added to the run-time in Silverlight 4.
One of the extensibility points added to the run-time in Silverlight 4
is the new INavigationContentLoader interface, which allows
applications that use Silverlight's navigation framework to take
control of page loading. In Silverlight 3, navigation URIs had to
target XAML files containing Silverlight pages. In Silverlight 4, a
navigation URI can target anything—a class name, a Web service that
provides page content dynamically, or a XAML file contained in a remote
XAP, for example—as long as an INavigationContentLoader implementation
is present to support it.