It depends.
From http://us3.php.net/manual/en/features.connection-handling.php:
When a PHP script is running normally
  the NORMAL state, is active. If the
  remote client disconnects the ABORTED
  state flag is turned on. A remote
  client disconnect is usually caused by
  the user hitting his STOP button.
You can decide whether or not you want
  a client disconnect to cause your
  script to be aborted. Sometimes it is
  handy to always have your scripts run
  to completion even if there is no
  remote browser receiving the output.
  The default behaviour is however for
  your script to be aborted when the
  remote client disconnects. This
  behaviour can be set via the
  ignore_user_abort php.ini directive as
  well as through the corresponding
  php_value ignore_user_abort Apache
  httpd.conf directive or with the
  ignore_user_abort() function.
That would seem to say the answer to your question is "Yes, the script will terminate if the user leaves the page".
However realize that depending on the backend SAPI being used (eg, mod_php), php cannot detect that the client has aborted the connection until an attempt is made to send information to the client. If your long running script does not issue a flush() the script may keep on running even though the user has closed the connection.
Complicating things is even if you do issue periodic calls to flush(), having output buffering on will cause those calls to trap and won't send them down to the client until the script completes anyway!
Further complicating things is if you have installed Apache handlers that buffer the response (for example mod_gzip) then once again php will not detect that the connection is closed and the script will keep on trucking.
Phew.