Let be more clear and provide more detail: when my app starts, it shows a control in the MainContentRegion and a login control in the PopupRegion. The LoginView has LoginViewModel which implements INavigationAware.
So, here is a snippet of the module:

As you can see, in the Initialize method of the MainModule, I already call RequestNavigation on the LoginView. The OnNavigatedTo is not called.
Ok, moving on...
When user click in Login button on the LoginView, I call

I tried using the RegionPopupBehavior of the Stock Trader RI as out of the box to show a simple popup and didn't experience this behavior; the
OnNavigatedTo method executed correctly when the view was shown.

It is possible that the PopupRegionBehavior or the WindowWrapper.Desktop you are using in your application was modified to show the
Window using the ShowDialog method instead of
Show. This would show the Window as a dialog, but would also freeze any logic being executed until the popup
Window is closed, included Prism's navigation logic as well as other region behaviors.

A possible approach could be to disable the parent window manually when showing the window, and re-enabling it once the popup is closed. For example, in the code behind of the
Shell window, you could subscribe to an event using the
EventAggregator. When this event is raised you can change the IsEnabled property accordingly to disable / enable the main window.

Then, you could modify the DialogActivationBehavior to raise the event in the
PrepareContentDialog and CloseContentDialog methods in order to block / unblock the parent window.

I have created a small sample portraying this approach. You can find it in the following
SkyDrive folder as "PopupRegionAndNavigation:"

You can fix this issue by change code in Prism.
Find RegionNavigationService.cs in Prism.Desktop and then goto to ExecuteNavigation then find InvokeOnNavigationAwareElement(view, (n) => n.OnNavigatedTo(navigationContext));. If you call this function before this.Region.Activate(view); it will works