Make sure that all of the AI packages that you gave them have the Offers Services check box checked !!
If you don't want to mess with the packages for the NPC (which, unless it's crucial that you do, is a good idea), you can do it with OBSE.
Make a script, call it whatever you want (I'm calling it NPCOfferServicesQuestScript here) and set it to a quest type. Make a quest, set it to start on game start, and set its quest as NPCOfferServicesQuestScript.
Then create another script called whatever you like (I'm using NPCOfferServicesPackageHandler), make sure it is set as an object script. Add this code (requires OBSE v18):
ScriptName NPCOfferServicesQuestScript NPCOfferServicesPackageHandlerRef rTargetRef rPackageBegin Function { rTarget, rPackage } SetPackageOffersServices rPackage 1End
And, in NPCOfferServicesQuestScript, add this:
ScriptName NPCOfferServicesQuestScriptRef rVendorRef rVendorPackageShort bHandlerAddedBegin GameMode If GetGameLoaded Set rVendor To NPCPersistentRef ;obviously not your NPC's ref If bHandlerAdded == 0 SetEventHandler OnPackageChange NPCOfferServicesPackageHandler ref::rVendor EndIf Set rVendorPackage To rVendor.GetCurrentPackage Call NPCOfferServicesPackageHandler rVendor rVendorPackage EndIfEnd
This approach has one significant downside. It means that any NPC which uses the same package form will offer services when running that package (they'll only offer services they would normally provide however), which may or may not be desirable. If you do use this script on an NPC with vanilla packages, please mention this fact in the readme so people don't wonder why some NPCs offer services when they shouldn't. If it's for personal use, or the NPC will only use unique packages, go for it.
Another approach would be to toggle the setting (SetPackageOffersServices) just before talking to the NPC and then set it back to its original value afterwards. That would require a GameMode block to detect when the NPC was in your crosshairs, or some such.
EDIT: It occurred to me that it is almost certainly better to use CloneForm before changing the packages and swap out the old one with the new. This will mean that you don't get the pollution my original script used.