Jag skulle nog prova detta:
$text = preg_replace("#(http://)?www\.#i", "http://www.", $text);
men det matchar bara domäner som börjar på www. Det idealiska är nog att försöka matcha mot hela domäner. Det fungerar alltså inte om dina användare skriver in xyz.domän.se. Det senare problemet löser du genom att ändra matchningen och använda bakåtreferenser. Se mer i manualen på
http://php.net/preg_replace.
Observera att jag bland annat ändrade modiferaren från s till i. s:et hade ingen effekt. i:et gör att det matchar oavsett case.