Can you please provide some explicit examples of where you are having a conflict with respect to pre-NX 3 part file expressions and NX 6 expressions?
Nothing has changed that I'm aware of since NX 3 except the introduction of additional Expression 'Types', such as now having an Expression which could represent something other than a Number (note that 'Number' is the default which means that unless you change this, it will behave just like expressions have always behaved and note that this has nothing to do with Units or Dimensionality except that they are ONLY relevant with respect to Number type Expressions). The other new Expression 'Types', include String, Boolean, Integer, Point and Vector.
To start with, there is a difference between 'Units' and 'Dimensionality'. Units generally are not the problem as long as the Dimensionality's match. Units are how a parameter is being measured such as a Length being in Millimeters or Inches, or some other unit of LINEAR measure. 'Length' however is a Dimensionality, as are Angle, or Area, or Volume, etc. all different Dimensionality's, each of which has certain expectations as to what the Units will be, such as an Angle will generally only have the Units of Degrees or Radians, whereas Volume has some linear Unit raised to the power of 3 or 'cubed'. This is just plain old, well understood mathematical principles.
The way the expression system now works (and has since NX 3) is that IF an expression has Dimensionality and you are creating a 'formula' where one expression is being referenced by another then the usage of that Expression will depend on the Dimensionality making sense. For example you will not be allowed to set an expression representing an Angle equal to an expression which has a Dimensionality of Length, and so on. This also means that I can't set an Area expression equal to an Expression for Length, however I could create a Formula where 2 Length expressions are multiplied by each other such as in the format of...
Exp(Area)=Exp(Length)*Exp(Length)
Or if it were Volume you'd have...
Exp(Volume)=Exp(Length)*Exp(Length)* Exp(Length)
...or even...
Exp(Volume)=Exp(Area)*Exp(Length)
Now in addition to normal engineering Dimensionality's that one would expect to find in a sophisticated Engineering system, NX also provides support for Numbers which have no Units and these have a Dimensionality of 'Constant'. Now this is also a needed convention since there are many mathematical values which are Constants (i.e. have NO units) and so any number created as a Constant will not conflict with ANY other expression's Units or Dimensionality. Note that ALL pre-NX 3 part files opened in NX 3, or later release, the legacy expressions will ALL be considered to have the Dimensionality of 'Constant' with NO Units assigned. Therefore, there should be NO problems with using these expressions in combination with ANY other Expression, be it a legacy Expression or a new one created in the current release of NX. The only thing that you need to keep in mind is that while there are no Units assigned to these legacy Expressions, we do know which ones represent linear versus angular parameters and we also enforce the rule that all linear parameters show values based on the base units of the part file. Therefore if the part file is a Metric file, the assumed linear units are Millimeters. If the part was created as an Imperial (AKA English) Part file, then the assumed linear units are Inches (Angles are assumed to be Degrees irrespective of the base units of the part file).
So unless you can show us that something other than the issues described above are what you're talking about, we have to assume that NX is working as expected and that the problems must lie with the way that you are using the software and that these attempts are violating the guidelines for using the Expression system as an Engineering Formula builder.
John R. Baker, P.E.
Product 'Evangelist'
Product Design Solutions
Siemens PLM Software Inc.
Cypress, CA
To an Engineer, the glass is twice as big as it needs to be.