In case your application runs on .NET version 4.0 the position should be fixed automatically. A combination of .NET 3.5 and browsers like Chrome or Safari causes the position on a page to be lost after postback.
The workaround is to use the AJAX update panel and check e.g. the Use update panel property in repeater based web parts.
If the update panel cannot be used for some reason, you can change the ~/App_Browsers/outputfilter.browser file and add the following code into the <browsers> section:
<capability name="supportsMaintainScrollPositionOnPostback" value="true" />
Please make sure that your master template, in case of Portal Engine it is file ~/CMSPages/PortalTemplate.aspx, contains the following property set to true:
<%@ Page … MaintainScrollPositionOnPostback="true" ..%>