Attached is a little module that allows users with the 'administer users' permission, which gives them the right to block a user, the ability to add a note to the blocking action. When the blocked user tries to log in, if they provide valid credentials, they see the note as an error.
Now when you drop the banhammer, they know why they're hurting.
This has to mess with the validation functions of user login, so it may have conflicts with other modules that do the same thing, like logintoboggan. Reordering module weights may help; I haven't tried.