There's already a thread, but anyway...
It's a great movie, and critics liked it. And for good reason. It's a great movie! Pretty much anyone ages 14-35 (I'd say 35 is tops to get the referances) is going to get the full enjoyment out of this movie.
Why did it flop at the box office? Plenty of reasons...
1. Marketing- The marketing for this movie was terrible. No one seemed to know about it. Movies that rely almost solely on pre-existing fans (in the case of a movie based on a book. ie: this one) don't do well unless it's backed up, or is an extremely popular book. (ie Harry Potter). I rarely saw trailers on TV, and even then they didn't do a good job of expressing the movie's plot. Next...
2. Shyness- People don't want to spend money on a ticket to see a movie that is "unsafe". They would rather see a movie like Transformers 2, because they KNOW that they like seeing Mehan Fox's jugs and giant robots. They aren't going to spend the $7 or $10 or whatever and risk seeing a movie that might not be what they're used to.
3. People are stupid- People are stupid. Do I need to say more? Well I'm going to. People just will not go and see an indy movie like this. They just won't. It doesn't matter how good it is, without half naked women, explosions and a plot we've seen a thousand times, it's not gonna happen.
This is a movie that is honestly one of the best I've seen this year, and the most fun I've ever had going to see a movie. I went twice just for that reason. I will buy it on DVD, and try and get people to watch it. That's all I can do: tell people about it.