What are the special accounts ACCOUNT_ZERO, ACCOUNT_ONE, and root account? It's not clear from the Ripple wiki what they are meant for. A little explanation would be nice.
What makes these accounts "special?"
The root account is the account that owns the XRP in the initial ledger.
ACCOUNT_ZERO is an account whose 160-bit identifier is zero. When dealing with a currency/issuer pair, ACCOUNT_ZERO is used as both the currency and the issuer to indicate XRP.
ACCOUNT_ONE is an account whose 160-bit identifier is one. ACCOUNT_ONE is used in cases where no account is applicable but the currency is not XRP. For example, in a ripple balance node between two accounts, the "balance" belongs equally to both accounts and is really a property of the two of them. It has an issuer of ACCOUNT_ONE.
ACCOUNT_ONE is also sometimes used as a flag in internal arithmetic operations to indicate that non-XRP semantics are desired. XRP amounts are stored as integer drops (millionths of an XRP) while other currency's amounts are stored in exponential notation. Sometimes an amount isn't in any particular currency (for example, when outputs and inputs are divided to compute an offer's quality). To indicate non-XRP semantics without having a valid currency, ACCOUNT_ONE is used. It essentially means "not XRP".