Create a table that holds the messages, with at least the message, userid to send it to, userid who sent it, and "read date" or read flag. When a user sends the message, you can then populate the message, userid who sent it, userid who sent to. When the user who is receiving the message logs in, do a query for messages to that user where the read date is null or the flag is false. Show all messages returned, or a button to lead them to the page to view the messages.
That method can only be done via ajax, and a loop triggering a database query. Your best bet would be to check for messages on page_load. If there is a message, show an alert. I believe that is how it is handled here as well. You only receive that new message alert when you trigger a page_load.