Well, that's probably because most people accept that a soldier voluntarily gives up so many years of his life for crappy pay, continually reduced benefits, and many of his basic rights being taken from him. He gives up much of what it means to be an American (using my own nation as an example) in order to 'protect the country' and 'defend its interests' (or, more truthfully, to be a pawn in the political games of the time). Veteran preference is just a small way of paying back some of what the veteran gave up.
If the Army started paying a comparable salary (considering you are a soldier 24 hours a day, on duty or off) with reasonable benefits (although even the current reduced benefits are in many ways far better than the civilian sector) and not impending upon the rights of the soldier - then we'd have no reason to HAVE veteran benefits unless we were WAR vets. But the cost to the country would be crippling, and most soldiers understand this and accept lower salary. And, being a soldier isn't just a job - it's a lifestyle you accept when you volunteer. You agree by volunteering to give up a large portion of your freedom of speech; your freedom of self-expression. You agree to support your commanders right or wrong; to support your president, right or wrong. You agree to suspend your personal morals on command: to lie, cheat, steal, murder as your commanders see fit. You agree to this and Oh so much more. So giving a little back to the soldier who sticks out years of this sort of inhumane treatment for his country makes at least a little sense.
Of course, you agree to this all 'in principle'... Anyone who's been a soldier in recent years knows well that a lot of slack is given to the modern soldier with regards to his human rights. But at the same time, every soldier who spends any time with the Army (military in general, of course) knows that you stop being a person and start being a piece of military equipment when you swear those vows.