For the header row of the table, the test is performed on whether SMSSendDriver is defined, but for each row, the first test is on whether 'transport_sms' is defined for that notice, then whether the driver exists. If an sms transport is defined for a notice (or even if the thinks it is), this will add an extra column of '--' to the table, forcing everything over by one, and the 'do not notify' column off the table. Reversing the order of the <TMPL_IF>'s in the messaging_preference_form.inc should resolve this.
*** Bug 5808 has been marked as a duplicate of this bug. ***
According to Bug 5809 this problem exists in the OPAC as well.
*** Bug 5809 has been marked as a duplicate of this bug. ***
Is this bug still valid in master? I can't tell from the description how to try to reproduce it.
Bug report is pretty old and we have done quite some work on this since. Closing WORKSFORME.