You don't need to do anything special. If you want a preview of how smoothly the data transfer will go just run the upsizing wizard and read the report. You may have column names that SQL Server doesn't like or relationships on fields of unlike sizes (Jet/ACE are more flexible), or validation rules that don't pass muster. You won't know what you have to address untill you do it once. You can then delete the database and recreate it again once you have fixed the problems.
All your tables MUST have primary keys or you won't be able to update them via Access. You should also define relationships and enforce RI.
Modifying the application can take anywhere from an hour to a week depending on how it is designed. If you just upsize the tables and leave it at that, the application will work (some DAO and ADO code will need minor changes) but it will likely be slower than the Jet/ACE version. To make effective use of SQL Server (or any other RDBMS), you need to bind your forms to queries that use selection criteria to severely limit the amount of data selected. Typically Access applications use forms bound to table or unqualified queries. Because of the way Jet/ACE works, this is not a problem. With a server-side database it is a major problem. A form bound to a table or unqualified query will open as soon as Access has a couple of records downloaded. The form will then just sit there sucking data down from the server until the entire recordset is local. If your table has a hundred rows, it really won't matter much. But, once you get more than a few thousand, you'll notice the slowness and your network administrator will seek you out to complain about the bandwidth you are using.
We've written lots here about working with SQL. Have fun.