Must be internal. Being motivated by what other people want you to do will only take you so far. Motivation that lasts comes from wanting to do something because it's important to you. Often what we think are reasons we don't do what's good for us are really excuses. I ask people: is the way you're living now going to allow you to do what you want to be doing in 5 or 10 years? If not, what do you need to change?
I find the best way. to motivate people is through negative AND positive reinforcement. I do express to them the down side of not improving their lifestyle (increased risk of heart disease, diabetes, cancer, stroke, arthritis, etc) and I ALSO point out the positive changes that can be achieved with even small steps in the right direction (lose 5 lbs & cholesterol lower, blood sugar control better, energy level, etc.)
Little steps . Every long journey starts with a small step! sometimes folks don't know, or don't believe that they can live a better lifestyle. I give them small goals that they can measure... Losing a pound or two, smoking a few less cigarettes a day, losing their temper less frequently, for example. I then build on the good feeling that the small change creates.
All about motivation. I prefer 'positive' messages rather than the usual fearful ones (your cholesterol is clogging your arteries, your sugar/diet is leading you to diabetes, etc.). Focusing on feeling better, and on how one positive change can effect many things. Lose weight? Your labs will be better, your "risks" are reduced, your knees will be happier (and last longer), and your sex life will be better!