Is it recommended to download the whole block chain before receiving or sending bitcoins?
It's not just recommended, it's required. Because transactions are stored in the blockchain, the software does not even know how many bitcoins you have until it the blockchain is downloaded: if someone sends you bitcoins, the bitcoins will not show up in your balance (and you will not be able to spend them) until your blockchain download has reached the block in which that transaction appears. At that point you
can spend the coins before it finishes downloading the blockchain, but the transaction will be labeled as unconfirmed until the blockchain is downloaded, even if it actually
is confirmed since the software has no way of knowing that without the blockchain.
TL;DR: If you're expecting a payment but haven't received anything, or your own payments appear to never confirm, make sure your blockchain is complete and up to date before panicking.