Потому что ты весь cssText перезписываешь.
document.getElementById("p1").style.opacity = "0.5"
CSS-свойство opacity может иметь значения от 0.0 до 1.0.
А для IE прозрачность устанавливается фильтром:
document.getElementById("p1").style.filter = "alpha(opacity=50)"
Тут уже значения от 0 до 100.