Generally, the gigs of data are transmitted just once, during application setup. After that, clients can pick up new blocks are they are generated by the network. There are numerous proposals for generating a "summary block" that would securely allow a snapshot to be generated to avoid the initial download. [1]
There are light-weight clients out there that rely on a web service of some form for keeping track of the whole block chain[2].
In order to issue a new transaction, though, you only need to transmit the transaction itself: a list of signed transactions: "transfer x bitcoins from this address to this address", basically.
Exactly. The integrity of the chain is kept not by including every transaction since the dawn of time in each block, but by simply including the hash of the previous block. This simultaneously shows where in the chain each block belongs and verifies that nothing about the previous block has changed.
There are light-weight clients out there that rely on a web service of some form for keeping track of the whole block chain[2].
In order to issue a new transaction, though, you only need to transmit the transaction itself: a list of signed transactions: "transfer x bitcoins from this address to this address", basically.
[1] Some suggested implementations are listed here https://bitcointalk.org/index.php?topic=74559.0
[2] https://en.bitcoin.it/wiki/Thin_Client_Security
(Edit: fixed formatting)