People looking at bitcoin for the first time often criticize what they perceive as a major weakness: the delay before a new transaction is included in a block, and the delay before the transaction gets enough (generally 6) confirmations. By saying so, they misunderstand one important point of bitcoin: bitcoin is not a payment system, it is a currency exchange system.
Why bitcoin transfers take time
Bitcoins can be regarded as cash, i.e. bills and coins. They can be mixed together, split into parts, and they can be rendered pretty untraceable if you wish so by mixing them into laundering pools or by never mixing them as if you had several cash wallets. As with cash, you get one major problem: crooks may try to fool you into accepting bitcoins that will later prove worthless, as they may try to fool you into accepting counterfeited money.
The bitcoin network, also called the blockchain, or transaction log, is in fact acting as a “validator” for a transaction. When a transaction is included in the blockchain, it means that other bitcoin participants will regard it as valid, and that its recipient will be able to spend the bitcoins in further transactions. A new block is added to the blockchain every 10 minutes in average. As bitcoin operates mostly on a computing power basis, it is deemed safer to wait until a few more blocks are produced on top of the block containing a given transaction to consider it irrevocable, as it is unlikely that anyone will get enough computing power by themselves to revert this chain of trust.
Similarly, money in your wallet is only worth something if a merchant or a bank accepts it as valid. As long as you keep it by yourself, you may not be 100% sure that you do not own counterfeited bills and coins that you will not be able to convert into goods, services or other currencies.
Does that mean that instant payments are impossible with bitcoins? Certainly not, there are several schemes that let you accept instant payments without using instant transfers, the same way that when you pay with a debit or credit card, the merchant does not receive the money immediately on its bank account but delivers the goods anyway.
Be trustful and take the risk
As the recipient of a bitcoin transaction, if only small amounts are involved, you may want to trust the sender as soon as you get the transaction. You may want to check that it has been broadcast to major sites such as blockchain.info, and that no double-spend (i.e., another use of the same money) has been spotted. There is a good chance that the transaction will be included in a later block as those hubs are usually well connected to miners.
Let someone else take the risk (and pay them to do so)
Another alternative is to let a third-party take the risk. Such an entity is called a bank. If the sender and the receiver both have an account at the same bank, and the bank is the sole holder of the bitcoins (by owning the corresponding private keys necessary to spend them), it can do an immediate transfer from one account to another, as it knows that no other transaction will contain the same bitcoins.
Note that it is enough for the recipient to trust the sender’s bank. In this case, the transaction would be similar to a cashier’s check, on which the bank signature guarantees that the given amount will eventually be paid. As with a cashier’s check, you will need a way to ensure that the bank is the true originator of the transaction. That may be done by signing a copy of the transaction with GnuPG for example, or by using a trusted bitcoin address as the sender side of the transaction.
If you dislike or distrust banks, or if you came to bitcoins precisely to avoid the need for banks, note that other schemes exist while others are still to be invented. For example, a third-party entity could contract with merchants and guarantee that the amount going through them will be payed even if the transaction proves not to be confirmed, in exchange for a fee. It would work like a fully automated insurance company, that would for example only wait for the transaction to be broadcast widely enough before confirming the payment (a few seconds). In exchange, they will themselves broadcast immediately a similar transaction (minus a fee) from a trusted bitcoin address and the merchant will accept it immediately. If the amount is over a predefined limit, the insurance company could wait for one confirmation before broadcasting the trusted transaction.
As one can see, bitcoin is largely similar to cash. The blockchain is built by all the participants (miners create new blocks, others validate them) and acts as a distributed giant counterfeited money detector. As in real life, individuals and business take a risk when they accept cash without putting it through such a detector first. The bitcoin system is similar: you need extra work, or extra time, to ensure that the money you receive is genuine. If you do not want to wait, someone has to take the risk, and this is likely to cost some money.