Being honest is crucial if the truth helps them more than it hinders them in the long run. E.g. telling your friend that their SO is cheating on them, or telling your friend that they need to change their diet/lifestyle because their life/health depends on it. In this case it'll hurt them for a short while, but after they get over that hurt, they'll move on with their life/do what needs to be done to bring about a positive change. It'll end up helping them more than it will hurt them.
If you want to protect those you love from a harsh reality which they don't need to know about then go ahead and lie as much as you need to. I've been doing this for years. I lie through my teeth to keep my family happy and ignorant about me. They don't need to be more concerned about me than they already are. If they knew some truths (that I was molested as a child, sexually assaulted at 15, and then raped at 18) they might actually be a little nicer and understanding/compassionate toward me, but at the same time they'll be absolutely broken over the fact that the baby of the family had to deal with that. God knows if I found out one day that my nephew had to deal with things like that it would crush me. My family have always been over protective with me. I can't put them through the pain even though it's something I really wish they knew. On the other hand, if they knew certain other truths then they just wouldn't be able to look at me in the same way anymore. I'd probably be disowned and kicked out from home.
In this case, it'll do more harm than good because it'll bring pain in the long run.
Ultimately, for me, what it comes down to is the question: "if I told this truth today what would life be like in 5/10/20 years time for those involved? will it be better or worse?"