I've written an unpolished custom fragmenter for highlighting which is more expensive than the BasicFragmenter that ships with lucene, but generates more natural candidate fragments (it will tend to produce beginning/ends of sentences).
Would there be interest in the community in releasing it and/or including it in Solr? -Mike