Guardando un pò in giro ho notato che phpBB utilizza una soluzione simile alla tua utilizzando un campo 'order'... In ogni caso io la vedo come una soluzione troppo complicata.
Alla fine credo che opterò per uno script php che aggiorni gli id di tutte le righe successive e che successivamente richiami il comando ALTER TABLE t ORDER BY f


Per intenderci una cosa del genere:
UPDATE table SET id=id+1 WHERE id>numero_riga_da_inserire order by id desc;
INSERT INTO table (id, ecc...) VALUES(numero_riga_da_inserire, ecc...)
ALTER TABLE table ORDER BY id