IE allows me to create a text range in an input element, upon which I can call getBoundingClientRect() and get the position in pixels of a certain character or
getBoundingClientRect()
2016 update: A more modern HTML5 based solution would be to use the contenteditable property.
contenteditable
Block of regular text, and text of interest
We can now find the position of the span using jquery offset(). And of course, the tags can be inserted upfront or dynamically.
offset()