By default Drupal sends an email as soon as you make a call to drupal_mail(). For relatively small sites this may never be a problem. However, if you run a large site with many users, then you need to develop a stratagy for controling how much mail gets sent at a given time. Imagine that you have a site where users can subscribe to be notified by email everytime you post a piece of content. When you have thousands of users subscribed, a ton of mails will be sent immediatly and php may time out as Drupal tries to process all of the subscriptions at once.