Using the back button was awlays a problem, web applications are just not designed for such usage. SO the best solution would be to tell the users not to use the back button in such cases.
But, since you cannot always tell this to the user, you could override the template which is used for displaying history and put whatever you want in it. Possbily an error message.
--
Nothing is impossible. Not if you can imagine it!
Well, the solution like EditDirtyObjectAction is not doable here, because your users are trying to edit a version of the object that has already been published.
But you could try to use the redirect operators:
http://projects.ez.no/redirect_operators
in the history override template to redirect users to the edit page of that object. Sounds like it could work.
--
Nothing is impossible. Not if you can imagine it!