Why are greedy algorithms used to find upper/lower bounds? (when they doesn't guarantee an optimal solution) Take the nearest neighbor algorithm for the traveling salesman problem as an example. Why is it used to find the upper bound? When can't it guarantee an optimal solution? 

(Thanks to many comments below, which suggest (and are invalidated by) the last update of this question)
There are lots of NP-complete problem where no algorithm will find an optimal solution - during your lifetime. Given the choice between a greedy algorithm that finds a solution quickly which is often good, and an algorithm that will find a guaranteed optimal solution, but not while you are waiting for it, what are you going to use?