As pointed out in a different post, you can do this using the header() function, by setting the "Location: " property. For example: Header('Location: http://www.example.com') would redirect the user to example.com.
This is the most transparent way to do redirects, as the user won't be bothered. Now, the header function can't be called after ANY output has been sent. However, you can use output buffering (have a look in the manual). There are some server settings you need to look at, but in most cases, starting your scripts with a call to ob_start() will suffice.
I like this solution, and use it heavily in administration systems to avoid people reloading a page and thereby inadvertently create a new entry in the DB or similiar.