>>Можно ли как-нибудь управлять историей посещений (кроме перехода вперед-назад) в Javascript
history.length
history.go(number)
Ещё location.replace() переписывает текущий пункт history.
>>ли можно как-нибудь отслеживать нажатия на кнопки вперед-назад и не давать переходить по ним?
Нет. Но можно при переходе на ссылку открывать страницу с переадресацией на целевую страницу, соответственно, при нажатии back будем попадать на страницу переадресации и возвращаться обратно. Но не рекомендую, такое раздражает.
Есть ещё onunload, но это ещё неудачнее.
Само собой, если есть возможность развернуть всю текущую историю и перейти куда надо, как в Опере, то такое не поможет.