You're actually running into a number of items. First, Mathematica's default display setting shows 6 digits of precision. You can edit this by going to Edit->Preferences and then selecting the Advanced tab, then hitting the Option Inspector button. In the window that pops up, type precision. You can then edit the PrintPrecision directly. This is not, however, the underlying precision:
In[9]:= FullForm[FindRoot[Cos[100/x]==x/(x+1),{x,5000}]]
Out[9]//FullForm= List[Rule[x,5000.833191160513`]]
Here you see that 16 digits of numerical precision are underlying the result. However, you must also realize that those may not be real digits of precision. That is, when 16 digits determine the round-off location, the error can grow during the calculation. Now let's look at the FullForm of your second calculation:
In[10]:= FullForm[FindRoot[Cos[100/x]==x/(x+1),{x,5000},WorkingPrecision->16]]
Out[10]//FullForm= List[Rule[x,5000.83319115952528306527469623136214642045`16.]]
Here, far more digits are kept but the result ends in `16, meaning Mathematica only trusts the first 16 digits of precision.