I usually use the options field in the user table. I only use it privately tho, because if I start using it in hacks, I guess at least one more person will start using that technique (not that I mind, of course

). The problem would be, that two hacks and more will surely use the same flag (16, 32, 64, etc.) so that technique would become useless.
Using another table is a bit clumsy IMO, because then you won't be able to access the value without selecting it directly from the database (as opposed to using getuserinfo() and that's it), unless you modify the getuserinfo() function to do that JOIN.