It is possible,
try setting up another machine with a lot of diskspace (at least enough for the size of your vps and a host OS)
Lets say this disk is called /dev/sda
where your data is stored on.
then dd if=/dev/sda | ssh username@placetobackup "dd of=/directory_of_backups_on_ssh_server/backupfile.img"
Now after downloading the backup img from your server, put it on a (external) harddrive. Next start up an ubuntu live disk. Create a new partition, on the harddrive you are going to put your system on that has the same size as your vps and all its partitions.
Lets say this disk is called /dev/sda
Lets say our external disk with our backup img is called /dev/sdb
parted /dev/sda mklabel msdos
use cfdisk
to partition your drive /dev/sda
Next mount your harddisk to your live environment
mount /dev/sda /mnt
Next mount your sdb
mkdir /oldImage; mount /dev/sdb /oldImage
cd /oldImage
Next we copy everything with all rights to the new image
find . -xdev | cpio -pm /mnt
Next mount some folders :
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
Chroot yourself :
chroot /mnt
Install a kernel if you used virtualisation software like Xen or openVZ and setup grub :
apt-get install linux-image-2.6-amd64 grub
grub-install /dev/sda
update-grub
Make sure in fstab everything is correct
vim /etc/fstab
Next shutdown the system, boot from the harddrive we copied everything to.