A few years ago, I was assaulted by a coworker of mine who had a history of domestic violence (per a common friend, who dated him for a while). He had a short fuse and, on different occasions, had an attitude towards me. On that occasion, he believed I was disrespectful to him by asking another coworker to transmit a message to him about graphical assets I had needed from him for a few days. I simply didn't want to deal with him directly. While I was the project manager on top of the lead developer, he never did what I needed, thinking he knew better, doing his own thing instead.
The next day, right after I walked in, he barged into my office, slammed the door behind him and started yelling at me, with his face mere inches from mine, while pushing me towards the wall behind my desk. I then started to push back while asking him to leave.
He then yelled "Oh, that's what you want to do?" and initiated some sort of physical struggle with me. He was more athletic than me, as he was exercising daily. But I used to play rugby and was involved in nasty fights when I was a teenager. Although this part of my life was long gone, I knew how to fight, which he didn't.
I had no idea what he was trying to do or how he intended to end this, but I ended it by punching him on the nose, albeit with a certain amount of restraint, after trying several grabbing techniques. When we were done, he was red in the face and buttons had been torn off his shirt. Although I was upset and in shock, I had no injury and my clothes were fine. His face showed a red mark when I had punched him. Anybody walking in at that exact moment could have thought I had assaulted him and not the other way.
Note that, during the entire physical part of the struggle, I kept screaming "Are you crazy? Are you crazy?". There was one coworker who heard pretty much everything, including me screaming.
End of the story: we were both fired. He actually resigned the same day as he knew he was going to be fired. I was fired the next week with 2 months of severance and a $1000 per month for 2 more month for knowledge transfer (this was in 2005, by the way).
Because this was a very toxic work environment, I took the severance and then collected the 2 extra payments as a consultant. I was actually very tired of working there and had updated my resume recently.
What would have been my recourse, if any? There were no real witness to the entire confrontation, the police was not called and the only auditory witness (who heard pretty much everything from beginning to end) decided that she did not want to get involved.
Although this happened in Arizona, and this was at-will employment, the reason for my firing was clearly stated as being this incident and that I should be happy with the deal I was offered.
My relatives and friends believe I should have taken my employer and/or the coworker to court. I am not sure this was worth the effort
Edit: this was a mid-sized company with about 30 on-site employees and about the same number of consultants. There was no HR department to deal with and the CEO, who was by the way sympathetic to me, transferred the instructions passed to him directly by the owner of the company.