We consider a geometric optimization problem that arises in network design. Given a set P of n points in the plane, source and destination points s, tźP, and an integer k>0, one has to locate k Steiner points, such that the length of the longest edge of a bottleneck path between s and t is minimized. In this paper, we present an O(nlog2n)-time algorithm that computes an optimal solution, for any constant k. This problem was previously studied by Hou et al. (in Wireless Networks 16, 1033---1043, 2010), who gave an O(n2logn)-time algorithm. We also study the dual version of the problem, where a value ź>0 is given (instead of k), and the goal is to locate as few Steiner points as possible, so that the length of the longest edge of a bottleneck path between s and t is at most ź. Our algorithms are based on two new geometric structures that we develop--an (ź,β)-pair decomposition of P and a floor (1+ź)-spanner of P. For real numbers β>ź>0, an (ź,β)-pair decomposition of P is a collection $\mathcal{W}=\{(A_{1},B_{1}),\ldots,(A_{m},B_{m})\}$ of pairs of subsets of P, satisfying the following: (i) For each pair $(A_{i},B_{i}) \in\mathcal {W}$, both minimum enclosing circles of Ai and Bi have a radius at most ź, and (ii) for any p, qźP, such that |pq|≤β, there exists a single pair $(A_{i},B_{i}) \in\mathcal{W}$, such that pźAi and qźBi, or vice versa. We construct (a compact representation of) an (ź,β)-pair decomposition of P in time O((β/ź)3nlogn). In some applications, a simpler (though weaker) grid-based version of an (ź,β)-pair decomposition of P is sufficient. We call this version a weak (ź,β)-pair decomposition of P. For ź>0, a floor (1+ź)-spanner of P is a (1+ź)-spanner of the complete graph over P with weight function w(p,q)=ź|pq|ź. We construct such a spanner with O(n/ź2) edges in time O((1/ź2)nlog2n), even though w is not a metric. Finally, we present two additional applications of an (ź,β)-pair decomposition of P. In the first, we construct a strong spanner of the unit disk graph of P, with the additional property that the spanning paths also approximate the number of substantial hops, i.e., hops of length greater than a given threshold. In the second application, we present an O((1/ź2)nlogn)-time algorithm for computing a one-sided approximation for distance selection (i.e., given k, $1 \le k \le{n \choose2}$, find the k'th smallest Euclidean distance induced by P), significantly improving the running time of the algorithm of Bespamyatnikh and Segal.