Putting delay until next page is loaded fully in Selenium IDE
A pragmatic approach,
If you have some visual condition that gets true just when the page is loaded, you can look for that.Say that the text "Welcome User" gets displayed in a span with id=content somewhere when the page is loaded, you can replace your waitForPageToLoad with
<tr> <td>waitForText</td> <td>id=content</td> <td>Welcome*</td></tr>
Possibly you can even be as blunt as
<tr> <td>waitForText</td> <td>//body</td> <td>*Welcome*</td></tr>
though I haven't tested the latter myself.
If your page reloads after clicking, you have to use clickAndWait instead of click:
<tr> <td>clickAndWait</td> <td>css=button.btn</td> <td></td></tr><tr> <td>click</td> <td>css=span.ncs-tree-nav</td> <td></td></tr>
If the page does not reload, upper code won't work. In this case wait for a presence of an element that you are going to use on the next step:
<tr> <td>click</td> <td>css=button.btn</td> <td></td></tr><tr> <td>waitForElementPresent</td> <td>css=span.ncs-tree-nav</td> <td></td></tr><tr> <td>click</td> <td>css=span.ncs-tree-nav</td> <td></td></tr>