The reason why you get default app pool is because of
System.Security.Principal.WindowsIdentity.GetCurrent().Name
.
When you are running locally i am assuming you mean from visual studio which is why you see your username. Your user is running visual studio, which launched IE Express which is how you work with your page.
If you were to move that site to full blown IIS locally on your computer it will probably do the same thing.
This is more than likely because you've enabled anonymous authentication in your app when you need to have it disabled. When you've got it out on IIS go to the site in IIS, click the Authentication icon under <site name> Home. Then you should see a listing of auth types. You'll see Anonymous Authentication is probably set to enable and everything else is Disabled. You'll want to disable anonymous auth and enable windows auth.
Then, to access user info you should be able to use
User.Identity.***
..for example
User.Identity.UserName
or something like that.
It has been a while since i've done windows auth in MVC so I think you need to look some links for more clarification.
How To: Use Windows Authentication in ASP.NET 2.0[
^]