Listing the columns that you want to order by is the ONLY WAY in SQL Server to guarantee ordering of the result set.

Not sure what you mean by "not practical". If the concern is one of manually typing in the column names, you can write a simple query against INFORMATION_SCHEMA.COLUMNS view to generate the list; for example

SELECT ','+COLUMN_NAME FROM INFORMATION_SCHEMA.[COLUMNS]
WHERE TABLE_NAME = 'YourTabelNameHere' ORDER BY ORDINAL_POSITION
FOR XML PATH('')

If you want to order by ordinal position, you can generate the list of ordinal positions from a query