I think the problem might be that the vb:elseif tags aren't closed. You can close them by ending them with '/>'. Also, you don't really need the checks for the lower values, since if that part was true it would have matched the previous condition. So I think something like this should work:
Code:
<vb:if condition="$userinfo[posts]<25"><img class="inlineimg onlinestatus" src="pranks/star1.gif" border="0" />
<vb:elseif condition="$userinfo[posts]<50" /><img class="inlineimg onlinestatus" src="pranks/star2.gif" border="0" />
<vb:elseif condition="$userinfo[posts]<75" /><img class="inlineimg onlinestatus" src="pranks/star3.gif" border="0" /></vb:if>
Also if someone has 75 or more posts, they won't get any stars. If 3 is the max, then you would want to use <vb:else /> for the last one, without any 'condition='. (Actually, that would give 3 stars to everyone over 50).