In my experience if you set your fee to 0 and then try to transfer a small amount of BTC or an amount containing allot of transactions it will suggest a fee but you can choose no to pay it.
This is not true in the user interface of the reference client (Bitcoin-Qt). What wallet are you talking about?
The standard BTC client. An older version of course since it was a while back that I transferred a small amount.
Edit: I stand corrected. The options are Yes or Cancel in the 0.8.3 client.
I could have sworn it presented an option to send without the fee in older clients, but maybe not?