The volatility is the greatest hindrance to it being a viable transaction system. I'm hopeful that well functioning derivatives (futures, options, etc) will help to stabilize the price (as is the purpose of a futures market); however, that would rely on the traders having effective forecasts on supply and demand which I view as unlikely.
Related to that, I thought of an idea a while ago for a non-profit to create a new cryptocurrency that is by design pegged to the USD. Whenever anyone wants a unit of this currency, they can buy one from the non-profit for $1 and the non-profit will mint a new coin.
Similarly, if you want to sell the currency, the non-profit will always buy it for $1. The non-profit must keep the appropriate reserves (ideally, they would keep 100% of the US dollars bought or have always sufficient credit lines).
With this design, the proposed cryptocurrency will always maintain a $1 peg, removing the insane amounts of volatility. I know that is will be hated by all those in the btc community as it brings in a centralized monetary authority who controls minting coins; however, there is a huge value to an extremely low cost transaction system that is decentralized and pseudo-anonymous (which this would still be).
The central authority would not be capable of destroying coins or changing blockchain history, only minting new coins (and as per their charter, only when they are provided $1USD for the coin).
People would not have any obligation to use this monetary authority to exchange coins, and surely other exchanges which were more user friendly would appear. Simply, by an entity existing which will always buy at a given price or sell at a given price, it will cause the intended effect without having to have any central role in the decentralized transaction system.