Question: So, I was tasked by client to help him convert his wp menu to javascript dropdown. I did on my development server. He did see the change and I was paid. I deliver the code he deploy it. But, no change on his server. So, I have to spent hours debugging it on his server. It turns out, his other plugin is not compatible with my change. That plugin is really custom. I have to change my code to make sure it's compatible with that plugin.

My question is, **is it fair for me to charge him for the hours I spent on debugging it AND actually fixing it?** or **is it still my responsibility, to make sure my code deployed properly?**

Answer: 
On one hand, I think you're within your rights. If he didn't give you all the information you needed to do the job successfully (ie. the other plugin), how could you be expected to?

On the other hand, is there likely to be more work from this source, or through his friends? If so then you might want to seriously consider whether within your rights is enough. Maybe doing him a favour will more than pay off in the end.
I could be convinced either way on this one; but if there's more work on the line, I'd probably just end up eating it. 

These are the precious life lessons that no amount of school can teach you. You're lucky that this one only cost you a couple of hours of your time :)