I am assuming you are using p2.
When you export/build your feature with p2 metadata , the resulting content.xml (.jar) contains something like the following:
<unit id='f.feature.group' version='1.0.0' singleton='false'>
<update id='f.feature.group' range='[0.0.0,1.0.0)' severity='0'/>
...
</unit>
This <update>
element specifies previous versions of the feature that this one will update. The existing metadata generation tooling sets this as you see above.
I created a feature 'f' which includes plug-in "A 1.0.0" and exported with metadata and installed that feature into my eclipse. Then I created a feature 'g' which includes plug-in "A 2.0.0". I exported this again to the the same repository. Then I went and manually edited the content.xml file, and changed:
<unit id='g.feature.group' version='1.0.0.200907061120' singleton='false'>
<update id='g.feature.group' range='[0.0.0,1.0.0.200907061120)' severity='0'/>
to
<unit id='g.feature.group' version='1.0.0.200907061120' singleton='false'>
<update id='f.feature.group' range='[0.0.0,1.0.0.200907061120)' severity='0'/>
Then in my eclipse, I did a "Check for Updates", and it found 'g' as an update to the previous 'f' and did the upgrade. (You may need to force the repository to be reloaded to pick up the changes, doing a "test connection" in the Available Software Sites preference page should do this).
Unfortunately there is currently no way to do get the export/build process to change the update element for you, and it would need to be a manual edit. I raised this bug.