You have several possibilities to make your UI: WindowsForms, WPF, Silverlight, classic ASP.NET and MVC if you like to have control over html code. As both WPF and Silverlight have XAML engine (see
MSDN[
^]), you can target this approach.
But the major issue is the separation of logic: with every web based approach you have to deal with a server and a client side. Thus, you have to deal with statelessness and with communication issues, bandwidth problems and so on. With a desktop application you will have probably all the logic installed on the client. Or at least the temptation will be there to move more logic on client side.
If I understand correctly, your windows based application will be only a presentation layer. But Why bothering with it?
You take a really good path with MVC! If you don't need a extreme GUI, HTML5 gives you the possibility to make application look like a charm, with JQuery it will work in the browser like a charm, and now, with
Web API[
^] you can even host the server side logic outside IIS.
So, take the metro approach: everything runs in a browser. Make your GUI in HTML5, CSS3 and JQuery, make your logic in ASP.NET MVC4 or whatever you like, but do not generate html code on server side. Serve only static content and BL from the server. Create small windows forms app, that contains a WebBrowser control (or other browser control), and add as less code to it as possible - only to connect to the preconfigured server, and basic i/o.
Thus the customer will be able to use it's browser or this little app: same experience, no duplicated work, and no client side OS dependency (but you will need a good browser - or you have to serve different UI based on the client browser detected)
But let's clarify: Microsoft MVC is ASP.NET based, you need an ASP.NET enabled host to run it. You can make the server side logic on any other platform, and interact with it via JSON or XML, or whatever from a web browser based or a forms client. But that will be no Microsoft ASP.NET MVC anymore.