I don't think there is a one button good solution; you may need to creatively mix some tools and even then still do some manual checking and cleanup work. I would think a solution would involve some sort of buffering and after that a spatial join or overlay. I'll just throw out a couple of ideas that someone with more knowledge might make work.
You could start with buffering the line layer with the attributes you want, and then doing a spatial join to add those attributes to the target lines. Saying this is easy; there are lots of potential problems with overlapping buffers especially at intersections. A square buffer process might help but not eliminate the problem. Instead of a spatial join, an overlay might give you enough information, with the longest segment of any line usually holding the attributes you want, and then perhaps in Access or Excel you could use a max query to make a table of those features to join to your target data. You might go from attribute lines to points, buffer them and and then use a spatial join to the target lines.
ETGeowizards has a Transfer attributes wizard which does offer several transfer methods. You would need to create polygons through the buffer process to run it, and then join the results back to the lines. But this is not one of the free tools.
If the lines are pretty close you might make a copy of your lines, and then try to use the Integrate tool to make your attribute preferred lines jump to your spatially preferred lines locations. Or try to use a batch snap process to do something similar.