Te digo que la paginacion personalizada no es del todo flexible, sobre todo con sqlserver que no te permite traer los registros de la pagina actual sin usar tablas temporales o cosas asi, lo que baja un poco la performance o es muy rebuscado sobre todo para orednacion y paginacion al mismo tiempo (no como en Mysql que si tiene una forma de traer registros por pagina)
Aca pongo dos links que dicen como hacer la paginacion personalizada..
http://www.dotnetjunkies.com/Tutoria...B871F967F.dcik http://www.codeproject.com/aspnet/PagingLarge.asp
en este segundo explica varios metodos para paginacion personalizada con SQLServer, fijate que hay varios metodos, algunos metodos son mas rapidos para las primeras paginas y otros para las utlimas paginas, lo cual deberias ver segun la cantidad de registros que vas a tener en tus tablas y combinarlos para que realmente convenga usar este metodo, para la mayoria de las paginaciones es suficiente con la automatica....
Saludos