My strategy is to make sure there are unique ID's in the feature you want to update, even if you have to make a temp attribute. run an intersect. join the new feature to the old one using the unique ID and calculate the attribute based on the joined attribute that has the correct info cause it was intersected. For poly to poly intersects, I convert the one I need to update to a point first again... unique ID is the key.