FindItem$ will only work on those items loaded in the list so you need to force load the list in order to be able to issue a find.
What you can do is issue a FindItem against the list box and if it indicates it cannot find the item, you could try to find the item yourself from whatever data source you are using then position the list box to where it should be (set TopVisibleItem) which would cause the Load on Demand logic to fire.