I just went through the same/similar problem with an UpdatePanel inside an auto scrolling DIV tag, every click of a tree node, scrolled the content to the top of the tree. Here is what I found... I had my style information in an external style class (width, height, overflow). I took the style information out of the style class and put it "in-line" with the DIV tag and all worked fine.
<div id=pnlObjChoice_Tree class="" style="overflow:auto; width: 220px; height: 190px;">
<cc2:UpdatePanel ID="tvObjectTree_UpdatePanel" runat="server">
<ContentTemplate>
<asp:TreeView ID="tvObjectTree" runat="server"
EnableClientScript="False"
PopulateNodesFromClient="False"
Visible=true
ShowLines="true"
ShowExpandCollapse="true"
AutoGenerateDataBindings="False"
ExpandImageUrl="/Images/cfolder.gif"
CollapseImageUrl="/Images/ofolder.gif"
NodeIndent="15"
OnTreeNodePopulate="tvObjectTree_TreeNodePopulate"
OnSelectedNodeChanged="tvObjectTree_SelectedNodeChanged"
OnTreeNodeCollapsed="tvObjectTree_TreeNodeCollapsed"
OnTreeNodeExpanded="tvObjectTree_TreeNodeExpanded"
NodeStyle-CssClass="treeData"
SelectedNodeStyle-CssClass="treeDataSelected"
HoverNodeStyle-CssClass="treeDataHover">
</asp:TreeView>
</ContentTemplate>
</cc2:UpdatePanel>
</div>
For more information:
http://jblack.wordpress.com/2006/08/18/atlas-div-css-and-auto-scroll/
Jim
----------------------