...make sure that you have no output to the browser before sesion_start() statement... Even a space character before <?php can mess things up in this case...
Basically when any output is sent to the browser it is sent through HTTP and thus the headers are sent as well and you cannot modify them once they are sent...
I could be wrong but I think this is basically it...