My question really is, is it okay to extend the _user table, or must I absolutely use an extension table (ie., _user_extensions) to keep all my extra fields in? From what I can see, extending the _user table and then upgrading shouldn't be a problem, since the upgrade scripts generally extend tables, and don't recreate them, so extra, unexpected fields wouldn't be a problem. Having an extra table just means another join or something similar to get all the data, and according to SQL theory (whatever that was worth) they should be held in one table, since its a 1:1 link with a shared primary key.
Any definitive advice from the powers that be?