To some degree, this can be done. We have a Phone Message logging system here as part of our contact manager. With it we can record messages for specific employees and employees can pull up and respond to messages that are routed to them.
Where you have to do a bit of scripting is that you can't simply trigger an alert on one user's screen when another user sends them a message. If you need such alerts, best you can do as far as I know is to create a script using Install Ontimer to periodically check for new messages and then display one type of alert or another if new messages have been logged since the last time the script checked for new messages.
How would you go about telling fm to send a message to a specific user, what kind of tables etc would you need.
You'd have to set up a table for messages with fields similar to what you see in an email program.
You'll need To and From fields to identifier sender and recipient. (TO may be a check box so you can route one message to multiple recipients. A text field for the message and some date and/or time stamp fields to record when it was "sent" and possibly when or if it was "read" by the recipient.
To read "your" messages, you design the system to find all message records that are either "To" or "From" the current user. You can use Get ( AccountName ) or Get ( UserName ) to identify specific users.
You'll probably also want a table of users with names and a timestamp field recording the last time that user check for messages. Any message records with a timestamp greater than the value in this field is a "new message" so a find for such messages can be used to trigger periodic alerts.