Government contracting can be tricky. If the government pays $1m to an american company, they'll recover a significant amount of that through taxes. So the actual cost to the government wasn't actually $1m. If it's paid to an indian company, they won't.
This is exactly true. Not only in corporate taxes, but payroll taxes as well. So, literally, up to 35% of each contract goes back to the government in one form or another (whether directly or through overhead personnel salaries), hence the "buy American" thing in contracting with the government.