You can test for the existence of columns in a specific table using the INFORMATION_SCHEMA.COLUMNS system view, and wrap it inside of an "exists" construct like so:
if not exists (select 1 from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'members' and COLUMN_NAME = 'username')
begin
alter table dbo.members add username varchar(10) null
end
You can, of course, replace the literals with ColdFusion variables as appropriate.
Note, however, that this will only execute for logins that have suitable permissions. If you want everyone to be able to do this on the fly, you have to grant elevated SQL permissions. That may not be prudent, so you may want to consider carefully before implementing something like this. If you're using a service account in your ODBC (or OLEDB) connection to access the database, it might be okay...but again, consider carefully.
Good luck!