you can create a SQL job or a stored procedure with Execute As Owner.
the SQL job or procedure would contain the restore command in it,and you grant the limited end user EXECUTE ON MyRestoreProc, or on a different proc which starts the job via sp_start_job;
so the end user does not have db_owner or sysadmin rights, for example, but can restore due to the proc.
the procedure most likely has to exist in another database(ie master) so that it can disconnect users and restore the target database.
--help us help you! If you post a question, make sure you include a CREATE TABLE... statement and INSERT INTO... statement into that table to give the volunteers here representative data. with your description of the problem, we can provide a tested, verifiable solution to your question! asking the question the right way gets you a tested answer the fastest way possible!