I'm in the same boat thienhaflash was in. It's incredibly difficult trying to get a tween to play backwards the first time. It may seem obtuse at first, but I've actually run into this problem several times in the last few months.
A great example is when you have multiple, exclusive UI elements that can be switched between. You'd think you could just set up each UI element in it's intended place and set up a TweenPosition that moves it onto the screen, then call Play(false) and Play(true) to tween one out of the way and a new one in. The problem is that the UI element that starts on the screen (without having called Play(true)) will have Play(false) called first but it will fail and just jump to the final position the very first time it is called. After that, it works fine.
This seems to happen no matter what I do to set up the tween to be in the final state. Even with the GameObject in the final position, Sample(1, true) called, etc.
EDIT: Finally found a hacky way to deal with this. The problem is that mFactor is initialized to 0, so when you try to play in reverse, UITweener.Update sees it's already where it needs to be, and does nothing. UITweenerReset has this nifty line: mFactor = (mAmountPerDelta < 0f) ? 1f : 0f which gives me a way to get mFactor to 1 without tweening forward as long as mAmountPerDelta is < 0. However, it's initialized to 1. Luckily, Play(false) forces it to be negative. Thus:
tweener.Play(false); //Sets mAmountPerDelta to -1
tweener.Reset(); //Sets mFactor to 1
tweener.Play(false); //Plays the tween in reverse
actually allows you to play the tween in reverse, without ever needing to play it forward first.
That wasn't fun.