Ok. I think I know what is going on. Each of the rows in my database is "too big" to fit on the main page (about 320 bytes for each row). So each one is forcing an overlow page. I'm assuming that each overflow page only stores one row of data. In other words, the overflow pages don't share rows as the main pages do. So since my rows are just a little too big to fit on the main page, most of each overflow page is unused. And since just about every one of my 80,000 rows is creating a 1k overflow page that is largely unused, I'm ending up with a very large database file that is made up mostly of unused space.
Does that sound about right?