Koala,
Thinking out loud... (more imagination than experience)
If you skip the Launch Search and do it all in script, then it becomes "phases".
Create a function to do a OpenSearch()... and then related "firstkeyword" and "firstpage".... "next keyword" etc. [am uncertain here how much has to be indexed... but I think it's req'd].
Then once on a Page, either User would have to click a button for "Highlight", or you'd have to have set a flag somehow (that searching was active) and use that as a trigger for highlighting script/action.
1) this would be achieved as FindText(XXXXX) type functions. Pick-up the keyword parameter from above.
2) to point the FindText to a textobject, I guess you'd have to go through certain NextChild() gyrations on each particular page.
3) then get into SetSelection.... Set__selection__Style, and the ShadowColour to do the highlighting. Of course, you have to release or reset the styling when moving on to 'next'.
Whew!! I don't envy you.
Then there's the Blonde solution. Send them a Neon-Yellow highlighter pen with each download of the Pub.
