How can I force iOS Mail to download the entire email every time?

Exchange ActiveSync 12.1 (introduced with Exchange Server 2007 SP1, released on Nov 29 2007) added a policy called mail body truncation size (see http://en.wikipedia.org/wiki/Exchange_ActiveSync#Exchange_ActiveSync_12.1).

This is a server-side policy that can be enforced for a group of users, as stated in the Microsoft Exchange documentation (see https://docs.microsoft.com/en-us/previous-versions/office/exchange-server-2007/bb123484(v=exchg.80)):

Exchange ActiveSync mailbox policies let you apply a common set of policy or security settings to a user or group of users.

(...)

Maximum HTML e-mail body truncation size

This setting specifies the size beyond which HTML-formatted e-mail messages are truncated when they are synchronized to the device. The value is specified in kilobytes (KB).

(...)

Maximum e-mail body truncation size

This setting specifies the size beyond which e-mail messages are truncated when they are synchronized to the device. The value is specified in kilobytes (KB).

HCL Traveler (formerly IBM Lotus Notes Traveler) supports ActiveSync and has a similar setting in Default Preferences > Filter Settings, which is enabled by default and limits the downloadable body to 5000 characters (see Table 2 in https://help.hcltechsw.com/traveler/11.0.0/Server_synchronized_settings.html?hl=traveler%2Ctruncate):

Email Body Truncation

Enables email body truncation. Characters beyond the default character value in the email body are truncated from the email body.

So it looks like it is a bandwidth-saving setting on the server and you basically can't do anything about it.