Hallo Carl,
die cookies werden vom Server im Header zum Browser gesendet. Die Funktion setcookie() tut also nichts anderes, als header("Cookie: ..."); (oder ähnlich) aufzurufen.
Du umgehst das Problem mit der Ausgabesteuerung.
Wie genau, kannst Du in der PHP-Manual nachlesen: http://www.php.net/manual/de/ref.outcontrol.php
Gruß,
- Johannes