А что сделать-то надо ? Если полностью резиновый дизайн - то для начала - сделать полностью "резиновую" кривую, с возможностью получить реперные координаты блоков. Лучше такую кривую делать на svg, так как при расширяемой картинке будет меняться ширина линии. Само решение для линии может выглядет так - по window.resize, через маленький интервал времени перерисовываем кривую на svg и вставляем ее в бякграунд.
Для блоков с текстом все страшнее - нужно расставлять блоки не точно в реперные точки, а так, чтобы блоки не налезали друг на друга. Если сам текстовый блок будет не такой, как кажется дизайнеру, а такой как хочется владельцу сайта, то придется освоить ремесло плиточника ;)
Как простой вариант - ставить текстовые блоки с репером в левом-верхнем углу, а если выходит за рамки - то правым или нижним... на том же window.resize