For a large project i can recommend using one directory per module, and one file per "thing" (service, value, factory, controller...). Html partials should be stored in each module directory along with their respective directives or controllers.
We have been using this approach for some time, and it is really working out fine. The project is built by maven (Java is used for the backend), and all the js-files are concatenated into one file per angular application plus one file for components shared between angular applications. Check out aggregations in yuicompressor-maven-plugin if you are into maven.
Because we have several js files per module, we needed a way to create a module exactly once, and before we register the "thing" in each js-file.
The solution we came up with was adding a file called 0-module.js in each module directory with the module creation statement. yuicompressor-maven-plugin will add this first to the aggregated file.
Example file structure:
mymodule/
0-module.js
>angular.module('mymodule', []); //Create module
MyController.js
>angular.module('mymodule').controller("MyController", [... // Register MyController
myTemplate.html