There are only a few ways to handle soldiers after a war: find out if they fight on principle, for money, for psychopathy, or from coercion. There are too many to lock up, and if it's principle, they're not going to stop fighting. So inevitably you have to kill a bunch. If it is psychopathy, you try them for war crimes (there aren't many usually of those, thankfully). That leaves draftees and check chasers. The check chasers keep their heads down and the draftees do their level best to shoot at nothing and keep a clean conscience.
This leads me to believe that your understanding of military personnel is based on fiction, not on any actual interactions with soldiers of any sort.
What do you think is incorrect about his claim?
What motivations, other than the four he listed, do you think a soldier could have for killing people?
Consider yourself as a newly trained soldier. You have been marched to an ambush location in a war zone, and are now concealed in a foxhole overlooking a road. Along that road comes a marching column of soldiers, who are total strangers to you, and whose only noticeable difference from you is that they're wearing different insignia on their uniforms.
You are ordered to fire on them. Why do you obey that order, and kill a bunch of strangers?
a) Because you like killing people
b) Because you're being paid to do it
c) Because you will be punished if you do not
d) Because you have an ideological objection to the system for which those people are fighting, and you want to kill people who support that system
Is there any other motivation you could have for killing those people?