When two features classes in a personal geodatabase (PGDB) are unioned using the geoprocessing UNION Tool the result is a new feature class in the same personal geodatabase with features that are slightly shifted from the positions of original features.
There are 2 possible reasons:
1. The input feature classes are not contained in a feature dataset.
2. The feature classes have different precision values.
Feature coordinates are snapped to an invisible, underlaying grid that is calculated internally based on the feature class X/Y domain and precision values. The grid for a feature class with precision of 10 will be different than the grid for a second feature class that has a precision of 100.
The overlay function calculates a new precision value for the output feature class based on the extents (X/Y Domain) and other factors from all input feature classes. This results in a different location for the underlaying grid and features that are slightly shifted.