Look at the big switch statement on $index_order_part,
This case of the switch statement builds a big $td_str
with the current table datum in it. In the midst of
doing this, it calls the do_hook() for subject_link.
This won't work, because the plugin API says that
plugins should simply echo their content out to have it
added to the link. Since this switch case is buffering
the tag in a string, the echoed output will end up
going in the wrong place.
If one is using recent versions of php, output
buffering can be used to work around the issue, like this:
$td_str .= ob_get_contents();
Short of this, nothing apart from changing the plugin
API will help, I fear.