And ... I guess it got solved as I was typing ...
Well, below was my half amateur attempt at offering a solution. Sounds like you self-resolved this.
A good thing to consider would be to leave your original problem description, and post a note as to what you did to solve this, even if it was as minor as you realized you just did a stupid thing or something. Otherwise the presence of this thread now is pointless and doesn't help the next person who may happen to have problems with post-rotation using logrotate ...
------------------ IGNORE BELOW SINCE IT WAS SOLVED ------------------
Well in this case a script in /etc/init.d is likely owned by root and hence when you run it as root via direct command line, this is why it works.
Although I'm unsure why logrotate being run from the daemon doesn't have root privileges anyways ...
A suggestion is to run the post rotate script employing the use of sudo?
A further suggestion it to run a regular command also as part of the post rotate steps to just annotate the current time and date to a log file. Sort of a flag to validate that post rotation script actions occurred.