I had the following case recently. I applied for a small startup and they did a reference check, but they did not do it based on my provided references but based on a random check via common network. Based on our common connections and the structure of the feedback it was not very difficult to figure out who approximately have they asked for recommendations.
And then I realized that usually I have a very good relationship with the colleagues I work directly , but I rarely shy away from a conflict when I feel I have grounds. Basically the recommendation was not given from a person I have worked directly with I have been supervised by or who has worked directly under my supervision. I was trying in that particular project to press agile development methodology when the whole project was one big waterfall which earned me many enemies in the face of the rigid hierarchical structure with all sorts of manager to something positions. While trying to introduce agile I stepped on a lot of toes who were resilient to change and wanting to preserve their status in the project which would have been affected into the less hierarchical agile.
So this kind of raises the question. If you are done a random background check if you enter conflicts at the workplace the chance you will end up with bad reference increase. If you shy away from conflict then you will get a good reference , but this will not necessary mean that you are a good worker it would mean you conform well to the organization.
Presenting you own reference on the other hand also kind of does not do anything. Obviously a person always chooses the people he likes best that he know they will put him in good light.
So how do you crack this problem? How do you check references in a way that can actually provide you with meaningful feedback ?