This thread is using words incorrectly and therefore causing confusion.
There is no such thing as "change" at the transaction level of bitcoin.
Transactions have 2 parts when it comes to the transfer of value:
When creating a transaction, no matter whether it is a wallet creating it, or brainwallet.org, or you write your own program to create a raw transaction, the thing that creates the transaction specifies inputs to supply value to the transaction, and then specifies outputs to encumber that value with requirements.
"Change" is a word we use for any output that is "sent back to the sender".
If you specify input values that exceed the specified output values, then the difference will ALWAYS be a transaction fee. There is no other way to specify a transaction fee. This is the definition of a transaction fee.
So, if the OP is specifically asking about brainwallet.org (and not some other non-wallet method of creating a transaction), then the answer is:
EDIT: As of 2013 December 29, there is a bug in the brainwallet.org design (see post from Abdussamad below). If you are not aware of this bug and how to avoid it, then you should not be using brainwallet.org to create bitcoin transactions.
brainwallet.org creates an additional output sending any additional value that is not accounted for in the specified outputs and specified transaction fee back to the "Source Address".You can see this by looking at the JSON Transaction, without having to even transmit the transaction.