What does "Unable to decode output address" mean? On BlockChain.info, I have noticed a few transactions which send money to "Unable to decode output address".

For example, here is one:
https://blockchain.info/tx/624928439d2f668bab9f4cc1d9c4d2bc62a9603d8109d73d4fff8cf3043b68bd

All of the ones that I have seen with this message have 0 Bitcoins associated with that transfer and then some other greater than zero amount of Bitcoins sent to a valid looking address.  These weird addresses also have their money marked as "unspent".  Do they ever get marked as "spent"?

What does this message mean and why are people sending Bitcoins this way?
If you look at the output script for that output, you can see it looks like this:

 RETURN PUSHDATA(32) [some garbage]


This script, beginning with OP_RETURN, is called a null-data output, and is used to store arbitrary data in the blockchain. These outputs can never be spent, there is no way to make the script ever evaluate to true. Because of this, they will always show up as unspent on blockchain, and can be pruned from full node UTXO sets. 

In general it's required that these outputs are accompanied by at least one 'normal' output. Any bitcoins in an OP_RETURN output are destroyed forever because they cannot be redeemed, that is why they all have 0 value