It is a complicated problem, you can try and solve it by setting history points as described here:
However, myself, I don't like complicated solutions, so I would try to avoid the problem altogether by not using an update panel in that situation where you want to link to details and come back to the previous page from the detail without losing the state.
For example in the blog feature we used to use an updatepanel for paging the list of blog posts but I ran into a problem getting the content rating control to work in the updatepanel, it worked for the first page but as soon as you changed pages it was not wiring up the rating control (Different problem, same solution). So what I did was further encapsultate the post list into another usercontrol which is used both in BlogModule.ascx and in a supporting page ViewList.aspx. The pager links always point to the supporting page and pass in the page number, so even when on the CMS page that has the blog, as soon as the user clicks a pager link they are no longer on the CMS page but on ViewList.aspx though it looks very much the same to the user. So everything needed to maintain the state is present as query string params and there are no back button problems and the rating works on all pages of the list. This approach also reduces the amount of viewstate in the page. So from my ViewList.aspx page I could further link to detail pages and the back button would work correctly. If you try the paging links in the blog on this site and watch the url you will see. Note that there isn't code duplication since the same usercontrol is used in both the BlogModule.ascx and ViewList.aspx.
Hope it helps,