I don't know if this will help you (maybe post your blend file?) but I recently learned about the Offset Edges plugin (needs to be downloaded and installed from file). This works something like the way I would expect the "Shrink/Fatten" tool to work with a loop of edges--it will extrude them (or duplicate them, or move them) inwards or outwards in a way that does not distort the outline of the loop.
https://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Modeling/offset_edges
How you might use that here, in a sample file that is maybe a little like your example.
- The face to be created is between the top edge of the cylinder and the surrounding square edge.

- Since these are two separate edge loops, we will offset each of them separately. First the square edge, using Mesh-->Edges-->Offset Edges-->Extrude

- Then offset the circle loop using the same command:

- Now we can fill our remaining face, either using Mesh-->Faces-->Fill or Mesh-->Edges-->Bridge Edge Loops:

- Et voila, the ugly triangle topology of the filled flat face does not impact the edges (in this case) because it is "buffered" by a margin of proper topology.

How this may work out in your case is hard to say for certain, but it's worth a try.