Hallo semicolon,
du solltest im main() auch noch eine Endlosschleife spendieren.
Dabei natürlich die Interrupt-Enable-Funktion von PasstScho mit einbauen.

z.B.:
Code:
int main(void)
{
   GIMSK |= (1 << INT0);
   MCUCR |= (1 << ISC00);

   sei();

   while (1)
   {
      lcd_clear();
      lcd_home();
      lcd_out("waiting...");
      delay_3();
   }
}
Wenn dein delay_3() ca 3 Sekunden Pause macht, dann solltest du mit dem Tastendruch zwischen den "waiting..."-Ausgabe auch mal die Ausgabe aus deiner Interruptfunktion ins Display bekommen.

Kleiner Tipp:
Interrupt-Funktionen IMMER schnell halten. Soll heissen: Keine delay's einbauen.