opening an old wallet.dat I had about $8 USD worth of bitcoin in a wallet, and I backed up the wallet.dat to my dropbox. According to the modified date of the file this was in April 2013, so it was probaby from bitcoin qt version 0.8.1, or maybe a little earlier.

I basically left it there and haven't done anything with bitcoin since then. Since it is worth probably at least $100 now I decided to check the exact amount.

I downloaded the latest version of bitcoin core, added the wallet.dat file to the data directory, started it with -rescan, and waited almost a month (!) for the blockchain data to get up to date. The balance showed as 0 the whole time. I thought it would update once the blockchain was totally downloaded, but it still just says 0.

Is this a problem with old vs new versions? Did I do something wrong? Next time, should I expect the balance to show a non-zero amount even if I haven't downloaded the whole blockchain yet?
I recently recovered an old wallet.dat file using pywalley.py and Electrum, which allowed me to read the wallet and sweep the coins to a new Electrum wallet.
Steps:

Get the jackjack pywallet https://github.com/jackjack-jj/pywallet
Put the wallet.dat in that directory
./pywallet.py --dumpwallet  --datadir=. --passphrase=PASSPHRASE

Passphrase is optional, only if the wallet is encrypted.
If that works, then run it again with the --dumpwithbalance option, that is
./pywallet.py --dumpwallet --dumpwithbalance --datadir=. --passphrase=PASSPHRASE
Ideally, redirect it to a file. Then, search the file for nonzero balances.
You can use http://BitRef.com to make sure that the addresses with balances still have balances.
In the JSON dump of the wallet.dat file, you will find the private key, in the field labeled &quot;sec.&quot; Don't share that with with anyone. That key will allow anyone to sweep your bitcoins into their wallet.
Using that key, you can install the Electrum wallet and sweep the coins into a new wallet without downloading the blockchain. You will pay a fee of 0.2-0.5 mBTC to do it slowly, more if you are in a hurry.
There are good instructions at https://en.bitcoin.it/wiki/Transferring_coins_from_Bitcoin-Qt_to_Electrum which include a link to a more paranoid process using an offline computer to avoid accidental exposure of your private key.
There is a default fee of 0.5 mBTC, you can adjust it in Tools--&gt;Preferences.
The address in the &quot;Sweep&quot; dialog box is just the new wallet address being swept to.
You can watch the transaction progress at http://bitref.com or http://blockchain.info.
Once in the new wallet, you can send to an exchange like CoinBase to cash out, or just spend the Bitcoin. The Electrum wallet costs more in fees but saves you the pain of downloading and managing the whole blockchain.
EDIT #1: The sad news is that as of January 2018 the transaction fees are hovering around USD $40, so recovering a small wallet will probably consume all of its value. I managed to sign a low fee transaction from my old wallet, but it has been stuck in the mempool for weeks, now. It may be there forever.
EDIT #2: After 26 days in the mempool, my low fee bitcoin transaction finally got confirmed.