It's a good practice to implement a form of load balancing from a failover perspective, but not necessarily ideal if you only have two servers in your farm. As an example, if there's a high search load, then you may want that second box dedicated to services. It's not generally the best practice to run web and app roles on all of the servers in your farm. It can certainly be done, but only if you have a light load on them. You would typically run services (UPS, MMD, Search, etc.) on app tier servers where there's no web traffic load, and run your web applications on web tier servers.
In most cases you're running load balancing on the web tier servers only, and letting SharePoint manage the services of the app tier boxes. As an example, you can run MMD on multiple application servers, and SharePoint will do some internal management of those across all servers where they're running.
Search has multiple components to it (index partitions, query components, and crawl components). Different pieces should run on different servers, depending on if that box is an app tier box or a web tier box.
If their driver for NLB is for redundancy/failover, then the better approach is likely to add a second web tier box, not simply load balancing the two boxes you have now. Every environment is different, so just make sure you understand the loads and the expectation of the environments. NLB of web tier boxes will give you some redundancy of serving up web application content (though we haven't talked about SQL redundancy yet). If there's also a redundancy requirement on search then your best model would be 4 servers (2x web and 2x app) with a search crawl component on each web server and a query component on each app server. This would give you the ability to keep search operational with the loss of an app tier box. This 4 server model (plus SQL) is arguably the most common SharePoint deployment. Single server deployments aren't supported, and a two-server deployment is really a bare minimum architecture. As soon as we start talking about the need for redundancy, you've pretty much talked yourself up to 3-4 servers depending on the level of redundancy you need.
Also note the minimum system requirements. In a three tier server farm, your minimums are going to be 12gb memory and 4 cores. That's likely insufficient if you're looking at running all of the services and all of the web applications on every server. Those minimums assume you're spreading the load across web tier and app tier boxes.