Make a new table, say w3t_PostsOld, with exactly same definition as w3t_Posts.
Do queries:
INSERT INTO w3t_PostsOld SELECT * from w3t_Posts where B_Number<N;
DELETE FROM w3t_Posts where B_Number<N;
You may run this from cron to assure regular archiving (remember to optimize w3t_Posts after deleting old posts).
You can use B_Posted instead of B_Number to move posts to archive based on date they were posted.
Ie. to archive posts older that 30 days you should do following query:
INSERT INTO w3t_PostsOld SELECT * from w3t_Posts where (UNIX_TIMESTAMP()-B_Posted)>2592000;
DELETE FROM w3t_Posts where (UNIX_TIMESTAMP()-B_Posted)>2592000;
Then you must create some addititional files (by making changed copies of original files) to do searching in w3t_PostsOld (archiveshowflat.php, archivedosearch.php, archivesearch.php, archiveshowthreaded.php) and additional option in menu: "Search archive".
You can also create archiveaddpost.php and archivenewreply.php which will allow your users to reply to posts in archive and post these replies into w3t_Posts.
I can post here my archive* files, but they have searching changed to use fulltext indexes from mysql 4.0.1 (because in other way searching is toooooo ssssssllllllooooowwwww with large number of posts /I have about 500k/).
But if anyone interested let me know.