Once you've sent the information to the user in the form of a webpage, my guess is you can't "force feed" them information again - this would seem to mean that you can't make something new "pop up" on the client's computer in response to a server-side event (server, not client, receives PMs if it's not some sort of direct link). You could have the pages all refresh themselves every 5 seconds, causing them to thus reconnect to the server, but that's too much of a hack solution.
The way phpBB does PMs is, when the user loads a page and has the option "notify me of PMs" selected, the script checks the database for any new PMs and, if there are some, writes some javascript that pops up a window notifying them. You could do something similar, having a PM database, putting the last PM timestamp received in some sort of session variable, then as part of the loading for each page on your site run a check of the PM database for messages to the user with a timestamp greater than the last one received. If this query returns any results, write some javascript that pops up a window with the corresponding PM, or have another script that handles displaying all received PMs. This solution depends on the user moving around the page (or at least refreshing it fairly often), and is perhaps not the most efficient, but it would work. Combine it with something like a refresh every couple minutes (if you want to be annoying) to ensure users receive PMs. Just a thought.