1) Internal motivation: some people are just go getters, you love to have them on your team, but sometimes they are seen as little puppies by other members of the team because they are perceived as being overly eager to please. Motivating this type of person is trivial.
2) Internal ambivalence: some people just don't have that drive. "Programming as a job" is an attitude that some in our industry have. These people do a good job while they are at work, but when they are not at work - they aren't. Motivating this type of person is more difficult since your have to convince them that the extra hours are worth it to them. The typical example for internal ambivalence is the programmer who don't read technical material, go to conferences or training. They expect to pick up everything they need to know between 9 and 5.