I have an object with some animation (120 seconds) and I want to make this animation now play over the duration of 270 seconds. How can I stretch the animation to this new duration?
Select the object and open the Dope Sheet. Set the frame scrubber (the green line) to the starting frame, press A to select all and then press S to scale the keyframes apart up to the required frame. This should stretch the animation to whatever length you want. If you have multiple keyframes, Blender will even these out for you. You can also hold Shift when scaling to snap in small increments.
Note of course that since you are making a short animation longer, it will most likely playback slower.
iKlsR's answer is good, but for completeness:
To do this for the entire scene you can use Time Remapping (in Properties > Render > Dimensions):
Assuming you are rendering to 24 frames per second, your 120 second animation should be
120*24 = 2880 frames long. To make it 270 seconds long, it should be
270*24 = 6480 frames long.
Also see How do I animate time?
One of the tricky things about time remapping or scaling keyframes is that any value such as an influence on a child of bone constraint that was formerly used as a switch between 2 keyframes (frame 1 influence=1, frame 2 influence=0) will now be gradual and most likely inaccurate. Say if you scale or remap by 2, then you'll have a frame in between where the influence is .5 and your object's location is wrong.
I've not found a solution, especially when using time remapping. However, using keyframe scaling you can least manually add more keyframes and adjust the influence/location.