Edit in JSFiddle

//Some other module
var otherModule = angular.module('OtherModule',[]);

// Other module has a GreetingService
otherModule.service('GreetingService', function(){
    this.sayGreeting = function() {
        return "Hello";
    };
});

// MyApp depends on OtherModule
var myApp = angular.module('MyApp', ['OtherModule']);

// MyApp is being configured with $provide injected
myApp.config(function($provide) {
    // Decorate the GreetingService
    // Service instance from OtherModule is injected as $delegate
    $provide.decorator('GreetingService', function($delegate){
        var originalGreeting = $delegate.sayGreeting();
        // Modify the sayGreeting function of the service
        $delegate.sayGreeting = function() {
            return originalGreeting + " World!";
        };
        // Add a sayGoodbye function to the service
        $delegate.sayGoodbye = function() {
            return "Goodbye!";
        }
        // Don't forget to return enhanced $delegate
        return $delegate;
    });
});

// The injected GreetingService in this module will be the decorated service
myApp.controller("MyController", function($scope, GreetingService){
    $scope.service = GreetingService;
});
<body ng-app="MyApp" ng-controller="MyController">
    {{service.sayGreeting()}}
    <br/>
    {{service.sayGoodbye()}}
</body>