I have always found disabling browser caching solves this. It means the browser HAS to recall a page from your server, even if it is through back button, thus allowing you to handle things properly. Try using:
Response.ExpiresAbsolute = DateTime.Now.Subtract(new TimeSpan(1, 0, 0, 0));
Response.Expires = 0;
Response.CacheControl = "no-cache";
in the Page_Load event of your C# code server side.