Adding a data file to existing sql server database taking too long
I have a feeling something is iffy about your setup here. 

If you run the following script:

DBCC TRACEON(3004, 3605, -1);
GO

CREATE DATABASE Crap;
GO

EXEC sys.sp_readerrorlog;
GO

DROP DATABASE Crap;
GO


You should see this in the error log:



In other words, only the transaction log needs to be zeroed out. The data file should skip this.

I can run this commands and have it finish instantly as well:

ALTER DATABASE Crap
    ADD FILE ( NAME = N'Crap_1', FILENAME = N'F:\SQL\Data\Crap_1.ndf', SIZE = 102400000KB, FILEGROWTH = 0 )
    TO FILEGROUP [PRIMARY];
GO


If you're on a new enough version of SQL Server (as your question >implies), you can see if this query helps:

SELECT servicename, instant_file_initialization_enabled
FROM   sys.dm_server_services;


If that doesn't work, you'll have to go back in time and use whoami to determine that.

Keep in mind that your server needs to be restarted to enable IFI, so if you just added the priv, or you added it and never restarted SQL, it won't be in effect.


  Also, this database is 24*7 and has DB mirroring configured


If this is sync mirroring, perhaps IFI isn't enabled on the parter? Have you checked to see what's up over there?