If I am planning to accept bitcoins, does my client need to be running? Can I simply give out my public key and open the client later to receive? Does it depend on the client (I use MultiBit)? Furthermore, if I send bitcoins, do I need to keep the client open for the receiver to receive their payment, or are they all set to receive as soon as their balance (not available balance) goes up?
To accept a Bitcoin transaction, you only need to give out a hash of the public key also known as the Bitcoin address. That said, if you are a merchant then the recommended practice is to give out a new bitcoin address for every transaction to make it easier to distinguish between orders from different people.
Assuming that whatever Bitcoin client you choose is honest, then it doesn't matter what client you use. Underneath it would be the same message broadcasted by the Bitcoin network. You don't need to have a client open at all times to send or receive payment, but if you use Bitcoin-Qt then you would need to have an up-to-date blockchain database in order for client to scan through the blockchain to show all received/sent transactions and display the correct balance.
Bicoins are "received" to all connected nodes, not just to your node. So no, your client does not need to be connected to receive.
To send a transaction, the transaction needs to be broadcast to peers that are connected. Generally, this will happen in seconds but if your network happened to hiccup or it had only connected to non-compliant peers that didn't relay your transaction (perhaps by rogue nodes, for instance) or for whatever reason, then your client will re-broadcast the transaction after a period of time has passed. If the client isn't still running, then the re-broadcast won't happen.
There are services that can show if a transaction was successfully broadcast. One is BlockChain.info:
Once a transaction is successfully broadcast, then the work of the client is done. It can be closed, without needing to wait for any confirmations to occur.