NAV 2009 is tricky—its “classic” version has pretty limited integration options, mostly via direct SQL access, flat file export/import, or XML ports. The “RTC”/web services layer is more robust in NAV 2015, which supports OData and SOAP web services for exposing entities like customers and contacts.
For NAV 2009, you’ll likely end up using XML ports or automating flat file exports, then building something to sync those with Salesforce (either on a schedule or triggered). Direct SQL access is possible but not recommended unless you’re careful about data consistency and NAV’s business logic.
Once you upgrade to NAV 2015, things get easier—you can publish pages or codeunits as web services and consume them directly from Salesforce or an integration middleware. You’d expose the relevant entities (contacts, accounts, etc.) and pull data using standard web service calls.
If you need to write back from Salesforce to NAV, you’ll need to set up codeunits for that purpose and expose them as web services. Authentication and permissions can be a hassle, so plan some time for that.
In short, integration is much smoother in NAV 2015, but doable in 2009 with more workarounds. If the upgrade is coming soon, it might be worth waiting unless the client needs something ASAP.