Where info is personalised it should be normalised into linked tables that only join to rows where that optional column has been added. Also if you might be adding many columns or long data it is common to have a core user table with extended info tables mapped on a one to one basis. These methods allow for smaller indexes more specialised to each query scenario.
Generally, good normalisation and matching tables well to real world entities rather than theoretical ones gives the most adaptable and future proof design.