If you don't have XP machines anymore (which you may not in 2013+), you can use the msg
command. By default, it will only send messages to users on the same machine, but you can use the /SERVER:computer_name
parameter (literally the characters "SERVER:" followed by the user's computer name on the domain).
Even that will still only do one at a time, but you can make a batch file and copy the lines once for each computer on your network. You can even make the message customizeable, for example:
msg /SERVER:COMP1 * /time:20 %1
msg /SERVER:COMP2 * /time:20 %1
msg /SERVER:COMP3 * /time:20 %1
msg /SERVER:COMP4 * /time:20 %1
Run myfile "This is a test"
and it will send that message to every machine listed in the file for the number of seconds specified (an optional parameter that could also be made customizeable)
This is workable for small businesses but becomes increasingly less viable in larger organizations, such as a university, due partially to the work in updating the computer list when it changes (although that may be programmable?) but mainly due to the fact that it still only sends each message one at a time, and you might not want to wait a few minutes for the message to propagate to everyone.