Doing a module along the lines of SendEmail which then pulls in one from a number of predefined "drivers" according to the local setup might be best. A number of common sms drivers can be provided, and anyone using something else, could plug in a new one.
For instance we have our own messaging connections with carriers, and some people might have a GSM modem/phone directly connected.
So this needs to be split into UI, which would be mostly if not exactly identical to how email notifications are done, while providing some flexibility on how the back end sends a message, since unlike email there is no standard way.