Why does the us military expect soldiers to pay for their own ticket home from Iraq if it's not for official army business?

Because they get a pay check.