How to load a program in memory at a different address than it is intended for?

view story

http://stackoverflow.com – Generally the user program binaries will be loaded in low address (usually around 0x400000) in the programs address space which will be specified in the elf binary (in the case of linux). Can we force a user binary to load at a high address, possibly within the 2GB range of addresses where libc or other such libraries are loaded? I have tried finding a solution on the net but could not find any concrete solution for this. (I am working on Ubuntu 12.10 64bit OS) Thanks (HowTos)