I assumed that sending a page out with an expiry (a la)...
Response.Cache.SetExpires(System.DateTime.Now.AddSeconds(5));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetValidUntilExpires(true);
...would mean that if the user hit the back button they would see the "Page Expired" message. It does not seem to work that way. I found that using the back button would simply show the old (IMO expired) page. In fact in experimenting with different combinations of caching/not caching and expiry times I NEVER managed to get the "Page Expired" message out of the browser.
What conditions provoke that message?
Server Environment ASP .Net. I've only tested in IE8 - I'm assuming that other browsers are consistent here.