From BOL 2008:
Permissions
Requires ALTER permission on the table or view. User must be a member of the sysadmin fixed server role or the db_ddladmin and db_owner fixed database roles.
Is it really the only way? What is the point of having "db_ddladmin and db_owner" if db_owner has it all db_ddladmin has?