Hab' ich eh' so gemeint. Egal.
Das Problem liegt darin, dass der "C" ja erst den menu-text aus PROGMEM rauskopieren muss, um lcd_string() zu bedienen. (Is nett, dass er das überhaupt drauf hat)
Aus irgendeinem Grund funzt das in der Schleife offenbar nicht.

versuch, ihn auszutricksen:
Code:
for(i=0;i<4;i++)
{
char txt[24];
  strcpy(txt, menu[i]); 
  lcd_string(txt,LCD_LINE1); 
}