Infatti...IE è SEMPRE meno rigido degli altri browser, tanto che talvolta fa "passare" codici assurdi riuscendo pure ad interpretarli!

Però mi pare che questo sia uno dei pochissimi casi in cui è IE ad avere ragione. Da quello che so, JavaScript tenta sempre le conversioni implicite dei tipi di dati. Ora, se leggendo il "valore" con innerHTML lo considera (giustamente) una stringa, è anche vero che facendo "secondi - 1" dovrebbe convertire implicitamente la stringa contenuta nella variabile secondi in un numero. Quindi il parseInt() iniziale dovrebbe essere superfluo...e invece per gli altri browser non lo è...mah!

innerText infatti ero sicuro che fosse codice proprietario di IE, mentre non lo ero per innerHTML. Ricordo che usavo (all'epoca) innerText per leggere i valori delle aree di testo, poi sostituito da value.