Should an end-user download the whole blockchain? Or is a “lightweight” client sufficient? The average user normally doesn’t want to host a 3+GB file on his machine and wait for hours for it to download.

What are the security risks of running a lightweight client? And how does this affect my daily transactions?
What features does a “full” client offer a “lightweight” does not?
For the MultiBit client:
(disclaimer: I am the lead dev)

1) as you are not running a full node, you are not helping relay transactions nor mining nor verifying blocks.

2) if an attacker can surround your network they can feed you spurious transactions and a fake but well formed alternate fork. (I guess this is true for bitcoind too).

3) MultiBit does not keep a database of unspent transaction outputs so importing an arbitrary key is slow. 

4) you ARE downloading the full blocks and parsing them (though not storing the full blocks) so you can keep up to date with blockchain reorgs and such like. 

5) an unconfirmed transaction cannot be verified by checking all the inputs are unspent and thus you cannot rely on it until it is confirmed. A full node can check everything about the transaction. Only when it appears in a block (on the main chain) can you have any confidence in it. 

6) not actually related to architecture but important for security: only the beta MultiBit code has encrypted wallets.

7) compared to bitcoind, the lightweight clients have less manpower working on them. If you want to use bitcoin in, say, a company environment then bitcoind would be the safer option. 

In summary: there are a few limitations caused by not having access to the full block chain locally but for everyday use they should not hinder you too much. Factors more to do with what the devs have managed to implement (or not) probably make a bigger difference.