The Arduino though has the program which runs everything so I don't see how the host board is controlling things , its only converting the info coming in to a form the arduino can read onto a serial connection isn't it ?
There are hardware and software issues involved with talking to a USB device. The USB Host shield manages the hardware side of things. The Arduino handles the software side. Serial is not involved.
So are you not referring to the bootloader?
The sketch handles telling the slave device attached to the shield what to do and I think you mean the the instructions for the host shield take up a lot of program room is that so ?
Yes. Sometimes. It depends, of course, on what you are talking to. Talking to a specific model from specific manufacturer, of GPS, for instance, is going to require less code than trying to determine what GPS is connected, what that GPS understands, and controlling ANY GPS.
Garmin might be helpful in supplying information about how to communicate with their GPS's. Magellan refuses to even disclose what time it is.