Sounds like you had the right idea, but were just missing the mark a little bit.
Switching from the drop-down list box to a text box allows the user to enter a value not in the list box, but where it sounds like you missed the mark is that you have the text box bound to a different node than the list box is. They should both be bound to the same XML node.
I created an example a while back which shows exactly how to do this, and even includes more functionality than what you were describing, such as allowing the user to edit or delete a value as well as add one. It also appears to the user to be a single control, instead of two separate ones. Check it out! It's called "Fully Editable Drop-down List Box" and is available at http://www.InfoPathDev.com/examples/

Signature
Greg Collins [InfoPath MVP]
Please visit: http://www.InfoPathDev.com
Hello !
I want to have a drop-down list box (entries manually
added) which let the user specifies another value, not in
the list.
As it seems impossible to do that with a normal drop down
list box (maybe not ?), I try to do this by adding a
value "Other, specify..." in the list box, and when it is
selected, a simple text box appears just below to let the
user enters a free value. But the problem is that the
value must be displayed in a SharePoint column, and with
this system, I have 2 different nodes (depending if the
value is present or not in the list box).
Is there a way to have a field which can fit my needs ?
Thanks in advance for your support ;)
Olivier
Software Engineer - ETSI Sophia-Antipolis