Have you read the datasheet ? It's quite detailed, and gives good information about using the external interrupts, and the various power-saving modes.
While the system is running, configure INT1 to be edge-sensitive, and have your interrupt routine handle debouncing if necessary. Set a global flag to indicate POWER_DOWN_NOW. The mainline code sees this flag in the main loop, sets INT1 to be level sensitive, and puts the micro to sleep.
It has to be level sensitive to be used for wakeup. Now when a push happens, the micro wakes up, and ints to INT1 routine.
Read the datasheet.
-pana