The newer 28nm based graphics cards run cooler and take less power. That is the amd 7xxx cards and the nvidia GTX6xx cards.
That said, graphics cards do run hot, but they are built to do so. The main issue is noise when the cooling fans need to spin up to generate cooling.
I would also look at the GTX660ti which was recently launched in the same price bracket as the 7870.
I think that a 7870 puts off more heat than a GTX 460, but that's a tough call. They're probably very close. However, you might have a bigger problem than heat generation considering much more power-hungry cards can be kept far below that temperature. Maybe your 460 simply has a very poor quality cooler or the cooler is faulty. Heck, you might also have a high ambient temperature in your case for other reasons. Also, does your 460's cooler have a lot of dust in it?
EDIT: The 7870 is a more balanced card than the 660 TI and can be found considerably cheaper. It also overclocks very well whereas the 660 TI does not and handles DirectC/OpenCL game features and tessellation much better.
80c isn't really hot for a graphics card. I had a 9800GT that idled in the 90's.
Graphics cards shouldn't go above 84 C, at least with modern cards, or they risk damage to the GPU, VRAM, and VRM, among other parts of the card. Graphics cards should probably be between around lower 50s to higher 70s in most situations during gaming.