I updated your JSFiddle and i think it is fixed now: http://jsfiddle.net/veritas87/tcTKU/2/
The problem was you were adding "0px" behind the margin-top, so practically you were adding this string 0px after the number that came out. So if the scrolltop-elemtop was 100, you would make it 1000px because of the 0px.
var $scrollingDiv = jQuery("#vfb_widget-2");
var elemTop = $scrollingDiv.offset().top - 80;
jQuery(window).scroll(function(){
$scrollingDiv.stop();
if (jQuery(window).scrollTop()>elemTop) {
$scrollingDiv.animate({"marginTop": (jQuery(window).scrollTop()-elemTop) + "px"}, "slow" );
} else {
$scrollingDiv.animate({"marginTop": "0px"}, "slow");
}
});