Тут два случая могут быть, первый, это запрос страницы, url которой содержит hash, а второй случай, это щелчок по ссылке на странице, которая которая содержит hash. Для первого случая, при загшрузке страницы проверять наличие hash в url, и если есть, то смещение, типа такого (jQuery):
if(location.hash) {
$(document).scrollTop($(location.hash).offset().top-высота шапки)
}
При переходе по якорю внутри страницы, нужно обрабатывать события ссылок имеющих hash, таким же образом, а можно и с анимацей.