If you have started to implement MVVM for your Silverlight on Windows Phone application then you will soon or a later discover that the NavigationService is only accessible from a class that inherits from PhoneApplocationPage. I found a very nice and clean solution for this problem by implementing an ApplicationController class that looks after all the navigation. This one thing I love about it is the only place you enter a string in for the page URI is within the ApplicationController class when you register it. The rest of your application uses a nice strongly typed name.
Read the full article here http://blog.clauskonrad.net/2010/09/wp7-navigationservice-support-when.html