All low-level functions on the address, so address.send(), address.call.valueQQ, address.callcode and address.delegatecall:
When using assert to check invariants and it evaluates to false:
When using require to check input parameters and it evaluates to false:
To send ether to a contract without a function call:
Using selfdestruct(beneficiary) with the beneficiary being a contract without a payable fallback function:
If you need more fine-grained functionality than solidity offers out of the box: