Currently yes ( with the official client). But this is not a requirement of the system. Theoretically you can announce transactions without looking at the block chain, but then you do not know how much BTCs are in your account. There is another optimization, the block chain consists of an Merkle tree, such that you can verify the block chain without storing all the previous blocks. In this case you still need to download all blocks, but you only need to store ~ 80 Bytes per block. [1]
[1] http://bitcoin.org/bitcoin.pdf