Hi Gavin (welcome to hrmsaces by the way

)
Ah, Oracle Alert - what a joyous product - many a fond memory of grappling with it...

First thing i would do (have done) is to test the email system. Are you running on a Unix/Linux system or NT? For Unix/Linux you can use the sendmail command to test the email gateway is working. (use the unix 'man' command to get details on the usage of sendmail).
If the gateway is not set up correctly then you will get sendmail alerts to say that the email could not be delivered (when you log into the unix box you would get the "you have new mail" prompt upon logon - use the 'mail' command to check the mail, or get a friendly DBA to do this).
If the mail appears to be going out, is it being intercepted by a spam filter? The format of some of these mails may be odd, and have the machine name or environment name as part of the originator address - some filters could interpret this as spam.
Next up, testing the trigger. Assuming you have a test environment? Key some data into the absence screen - are there rows being populated in the custom table by the trigger?
Why is it a before trigger by the way?
From my memory of alert, you can build quite complex monitoring queries, so in theory you could have the alert driven off the absence table directly, rather than going via a custom table. I presume there is a reason why it has been configured this way.
If there are no rows being populated check the content of the trigger - does it perform condition checking (ie does the absence have to be of a specific type/reason/duration in order for the trigger to work)?
I'll stop now before the reply become unwieldy...Enough to go on for now..
Regards
Barry