Have you tried the net send command? It need the Messenger service running on the user's machine (not Instant Messenger)
Syntax
net send {Name | * | /domain[:Name] | /users} message
Parameters
Name
Specifies the user name, computer name, or messaging name to which you want to send the message. If the information that you supply contains spaces, use quotation marks around the text (for example, "Computer Name"). Long
user names might cause problems when they are used as NetBIOS names. NetBIOS names are limited to 16 characters, and the sixteenth character is
reserved.
*
Sends the message to all the names in your domain or workgroup.
/domain:Name
Sends the message to all the names in the computer's domain. You can specify Name to send the message to all the names in the specified domain or workgroup.
/users
Sends the message to all users connected to the server.
message
Required. Specifies the text of the message.
net help
Displays help for the specified net command.
Remarks
You can send a message only to a name that is active on the network. If you send the message to a user name, that user must be logged on and running the Messenger service to receive the message.
You can broadcast a message to all of the names in your computer's domain
(use * or /domain) or to a different domain (/domain:DomainName).
Broadcast messages can contain up to 128 characters. Use discretion when
you send messages to multiple users.
Examples
To send the message "Meeting changed to 3 P.M. Same place." to the user
robertf, type:
net send robertf Meeting changed to 3 P.M. Same place.
To send a