I really wish the BP scanners were integrated with the GIDS and the announcements, and would issue a loud "Bzzt," flash red, and reject the BP when a BP that's not in line with the current boarding priority is presented. The GA could of course manually override it, but the default state would be to reject someone boarding out of turn.
Preboard: accept any BP
First Class/Diamond: only FC or DM
Sky: FC, DM, Sky
etc.