I just had to block an editor who's a great editor, really productive, but won't go by the rules. She just violated several Wikia policies at once. I keep giving her nice warnings and links to the policies, and she keeps editing like crazy, but I don't think she's checked the rules. So I gave her a three day block and told her she could use those three days to study the rules. She can still post on her message wall during the block. I told her she's a great editor and I care about her, but I still feel miserable about blocking her. It's easy to block jerks. It's not easy to block nice people.
I certainly understand how you feel. Having to block users with a typically productive, good behavior may be hard step to take, but still the fact that they violated policies and neglected warnings stands. And as an administrator, it is only right and expected to step in and deal as needed. So do not take it too hard on yourself as it is not really your fault. Three days is not quite a long while either - I hope they use it well and return with a better understanding of policies. :)
What Aiihuan is good advice. I had to do something similar with a user on the Revolution wiki who did lots of at least somewhat useful edits, but refused to listen to me when I would give them advice or warnings as they ignored policies. Since that wiki is dead now, I don't have to worry about it, but I still feel a bit bad.
Really I still feel bad. But I got someone who just oversaw a Wiki merger helping explain it to her too. She's a really good editor, but she either doesn't understand or doesn't want to follow the rules.