Most likely the problem is simply that the relationship that you are solving has multiple solution points, for example it might have several local maxima if you are using Solver to maximize a function. Solver will generally find the solution that is in the vicinity of the starting point. If you give Solver starting values that put it in the vicinity of another solution, it will find that solution instead. All these solutions are valid local solutions.
It is important to mention that there is NO algorithm that will always find the "global solution", the highest local maximum or lowest local minimum. To guarantee this would involve using an infinite number of starting points. Practically speaking, however, one can generally find all possible solutions and pick the best one by running Solver using a matrix of starting points that encompass the solution space.