Commanding is a last resort usually. For me the main use is when the team needs for a decision to be made and a debate settled. In a sense I'm providing a service to the team: I'm taking the responsibility and blame if things go wrong and removing the need to go around debating in circles.
If I'm giving a command it's usually to say confirm some option that other people have suggested and debated like - ok "so Bob we agree that you're going to X and Alice will do Y".
At other times I want to make sure something gets done and I cannot do it or have no time to do it so I give the reason why it needs to get done first, e.g. "I'm worried that the QA's don't understand it enough to be able to test", so that the person can tell me if I'm wrong or if there's new information and then I say "could you make sure that the QA's know about it?"
If you that you explain you can show that your reasoning can be questioned. Someone might say "I don't know that area well" or "I'm under great pressure to do this other thing" or they might say "that isn't the way to get what you want".
I find it worth explaining the problem, suggesting solutions and encouraging the other person suggest some - then debating them briefly before making a decision.
If you do other things to show an interest in someone and that you care about them a bit then the pill of taking instructions is less. If you can build rapport by finding out what intersts them, get them to talk about themselves - take their HR related requests and other interests seriously. You cannot afford to fake this - you MUST care.
I also have to take commands and some are very unreasonable - those are the hard ones to deal with.