But it seems like there are times when it is okay to ignore what is said because of who says it. If a person has consistently shown herself to be a liar, it is fine to say "don't trust what she says." That's not the same as saying that what she said was false, just that the source is not trustworthy. And I don't think this qualifies as ad hominem, since we are not denying what is said, just rejecting the trustworthiness of a source.
What if we expand on the case. Let's say we know a person who consistently seeks the truth, and then gives us the opposite report. Consider a person who knows more about a subject than any one else, yet repeatedly declares publicly what he knows to be false. In this case, it might be better to go beyond "don't trust what he says" to "what he says is false" and to say this simply because of who said it. This seems like a intellectually responsible thing to do, even though it is structurally similar to an ad hominem. Perhaps in cases of consistent liars, it is best to reason from an ad hominem. Real-world circumstances might prevent us from ever having a clear case of this, which is why this reasoning probably shouldn't be advocated in any case. But it does seem possible that such a case could arise.
Fallacies are fallacies because they give the appearance of validity or reasonableness but can't be trusted in all cases. Even one counterexample works. But by restricting the scope of when it is permissible to employ it, I think we could find a non-vicious use of ad hominem.