I\'ve got a WPF application which calls MessageBox.Show() way back in the ViewModel (to check if the user really wants to delete). This actually works>
I recently came across this problem where I had to replace the MessageBox.Show in the ViewModels with some fully MVVM complaint message box mechanism.
To achieve this I used InteractionRequest and InteractionRequest along with interaction triggers and wrote my own Views for the message box.
What I've implemented is published here