I've had to fire a few, and while it's never fun, I never regretted the decision. One guy tested positive for cocaine, one physically threatened another employee, and another disappeared for two weeks because he was in jail for beating his girlfriend.
There was one situation that pissed me off, though. I told an employee that if he didn't work late that evening to not come back, and he packed his shit and left right then. A couple of months later my boss rehired him, and I became his manager again. He never complained about working late again, though, and he was a much better employee overall, so I guess ultimately he learned his lesson.