i missed the part about restoring on the remote server.
if you have a linked server, i know you can do EXECUTE AT;
here's an example of creating a table on the remote server, you could change that to run the BACKUP command instead.
EXEC sp_addlinkedserver 'SeattleSales', 'SQL Server'
GO
EXECUTE ( 'CREATE TABLE AdventureWorks2008R2.dbo.SalesTbl
(SalesID int, SalesName varchar(10)) ; ' ) AT SeattleSales;
untested:
EXECUTE('RESTORE DATABASE MyDatabase FROM DISK=''E:\Backups\MyDatabase.bak''') AT SeattleSales
Lowell