It depends just what you want to achieve. Roughly speaking all the smart
tag system does is maintain a list of regular expressions (e.g.
contacts' names, city names, ticker codes, patterns that match postal
codes) and match your text against the list. If it finds a match, it
works out what options are relevant and offers them to the user. The
lists may be stored in local tables, registry entries, etc. or assembled
from remote data sources, and many of the options involve building and
executing queries against a local or external data source.
In other words a lot of it is ordinary advanced database programming
(perhaps with some web services thrown in, e.g. querying a national
postal database for the address associated with a particular postal
code). It's quite possible, therefore, to provide a useful subset of
smart tag functionality. What would be difficult, perhaps prohibitively
difficult, would be to program the wiggly pink underlines, so you'd have
to work out a different user interface.