var currentPosition = window.pageXOffset || document.documentElement.scrollLeft;
Что-то не очень вертикально?
var scrollInterval = target / time;
Из target надо вычесть currentPosition иначе мы считаем скорость не от количества пикселей, которые надо проскролить, а от позиции, кторую надо достигнуть.
if (currentPosition >= target)
Также надо учитывать что скролиться может и вверх.