Laut Datenblatt erkennt der ATmega8 ab 0,6*Vcc den Eingangspegel als HIGH. Bei 5V sind das 3V... also ist bei aktiviertem Pullup der Pin immer HIGH. Das Programm funktioniert also so wie es soll.
Ich würde den internen Pullup ausschalten und den externen Widerstand mit dem Fototransistor trauschen, wie robo_wolf auch gesagt hat. Aber ich bin der Meinung, daß du das Programm dann nicht ändern musst:
Wenn kein Licht auf den Transistor scheint dann leitet dieser auch nicht ->
Am Pullup (nicht der interne) fällt deshalb keine Spannung ab und der Pin liegt auf HIGH. Wenn der Transistor beleuchtet wird fängt dieser an zu leiten und zieht den Portpin auf GND.

Gruß,
SIGINT