If you don't want to use autonumber, you have several options:
1) have your application grab the last (largest) number, add 1, and use that as the new ID. That way you can use an int or varchar.
2) Put an insert trigger on that table that basically does the same thing (grabs the largest number, adds one, and saves that as teh new ID).
The downside to doing it this was is that you have to write all the "New ID" logic. Not easy. What happens in the case where two people ask for the largest number at teh same time? They'll both get the same "new ID".
What is your reasoning for not wanting to use autonumber? You can set the seed of the autonumber to anything you want. It doesn't have to start at 1. You can start it at 1000 if you like.
Author - Professional SQL Server 2005 XML