в CSS3
.unselectable {
   -moz-user-select: -moz-none;
   -khtml-user-select: none;
   -webkit-user-select: none;
   -o-user-select: none;
   -ms-user-select: none;
   user-select: none;
}
для IE  добавить элементу
onselectstart=«return false»
Для оперы на js . 
в яндексе есть костыли
Пример решения на javascript в том числе и для оперы
$(function(){
	$.extend($.fn.disableTextSelect = function() {
		return this.each(function(){
			if($.browser.mozilla){//Firefox
				$(this).css('MozUserSelect','none');
			}else if($.browser.msie){//IE
				$(this).bind('selectstart',function(){return false;});
			}else{//Opera, etc.
				$(this).mousedown(function(){return false;});
			}
		});
	});
	$('.unselectable').disableTextSelect();
});
ещё очень простое решение поставить прозрачный div верхним слоем, такого же размера что и блок который надо защитить от выделения.